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 ofNinetailed
class instances or<NinetailedProvider>
components.
Minor Changes
7.9
Fixes an issue where the Preview Plugin such that it can only be rendered once, preventing potential performance degradation from multiple rendered instances
Insights API requests error related to timeouts are now appropriately caught
Reactors how events are constructed internally by the SDK
7.8
Uses the Experience API, rather than fetched content, to determine if an experment is sticky
7.8.1
Fixes a non-urgent, uncaught exception within a low-level library
7.7
Adds a second configuration parameter to the Privacy Plugin to indicate what events and behaviours should be permissible even after end-user consent is provided. Previously, the Privacy Plugin enabled all events and behaviours after consent.
Adds a new
mapCustomExperienceAsync
method to the Contentful Utils library that supports asynchronous operations in the variant mapping function.7.7.4
Reverts event-sending functions attached to
window.ninetailed
to non-async
functions, providing better compatibility with third party analytics containers
7.7.3
Fixes a bug with several JS Utils
ExperienceMapper
methods that would not default the variants array to an empty array
7.7.2
Fixes a race condition in the Privacy Plugin
7.7.1
Resolves an issue related to correctly propagating the installed version of the Preview Plugin
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 ofuseSDKEvaluation: 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 frameworksAdds the
batch
method to the Ninetailed instanceAdds the
EventBuilder
class andeventBuilder
class instance to the Ninetailed instance7.6.1
Upgrades a dependency to mitigate a Regex security issue flagged by a thrid party
7.5
Adds a new
onInitProfileId
configuration option for Ninetailed instances.7.5.3
Fixed plugins not sending impression events for empty variants
7.5.2
Typing for
Ninetailed
instance correctedPreview Plugin uses an
ExposedAudienceDefinition
type for theaudiences
parameter
7.5.1
<MergeTag>
components now accept a fallback property
7.4
Adds a
timeout
option to all Node.js SDK requests
7.3
Adds a
getProfile
method to instances ofNinetailedApiClient
. This allows SDKs built on top of our shared SDK, like the Node.js SDK, to get profiles without having to sendtrack
oridentify
events
7.2
Adds the
component
event option toallowedEvents
of the Privacy Plugin
Last updated