Version 7

Using experience metadata returned by Experience API

Major Changes

  • Introduces using the Experience API's returned experience data to select the appropriate experience and variant when using the Shared or JS SDK.

    • This change significantly streamlines architectures other outside of web client-side-rendered React by allowing you to rely on the Experience API's response and declarative methods to select the Experience variants to render, rather than having to determine this yourself by replicating our React SDK code

    • The React, Next.js and Gatsby SDKs default to using the API response to select the correct experience and variant. To ensure compatibility with content sources that do not yet have Ninetailed Experiences IDs served over the Experience API, you should leverage the useSDKEvaluation property on the Ninetailed instance

  • Support for React Native through:

    • Removing incompatible polyfills (also a 33% reduction in package size 📉)

    • Ability to pass a custom storage and request context implementation on React and JavaScript SDKs

  • [BREAKING] profile is no longer a property of Ninetailed class instances or <NinetailedProvider> components.

Minor Changes

7.6

  • Adds the useSDKEvaluation to toggle how Experience variant selection is controlled. Variant selection using experience data from Experience API responses has been moved to the JavaScript SDK from the React SDK. Additionally, API-driven experience and variant selection replaces SDK-driven selection as the default.

    • Implementations using content sources that whose Experiences and Audiences are not indexed by the Experience API will need to designate useSDKEvaluation: true in the Ninetailed instance configuration options until their experience data are served over the Experience API. Nearly all Ninetailed users should leave this option unspecified to use the default of useSDKEvaluation: false

  • Adds onSelectVariant to the Ninetailed instance. This is a significant improvement to developer experience for implementing Ninetailed in non-React builds and ESR/SSR runtimes. Additionally, the React SDK has been updated to use this method internally.

  • Adds the onRouteChange configuration option to the Next.js and Gatsby SDKs, allowing for declarative customization of Ninetailed route change events called within these frameworks

  • Adds the batch method to the Ninetailed instance

  • Adds the EventBuilder class and eventBuilder class instance to the Ninetailed instance

7.5

  • Adds a new onInitProfileId configuration option for Ninetailed instances.

  • 7.5.1

    • <MergeTag> components now accept a fallback property

  • 7.5.2

    • Typing for Ninetailed instance corrected

    • Preview Plugin uses an ExposedAudienceDefinition type for the audiences parameter

  • 7.5.3

    • Fixed plugins not sending impression events for empty variants

7.4

  • Adds a timeout option to all Node.js SDK requests

7.3

  • Adds a getProfile method to instances of NinetailedApiClient. This allows SDKs built on top of our shared SDK, like the Node.js SDK, to get profiles without having to send track or identify events

7.2

  • Adds the component event option to allowedEvents of the Privacy Plugin

Last updated