JS SDK Update Guide
Existing Feature Updates
1) Method Renames
The following methods have been renamed:
identify
->setUserAttributes
track
->logEvent
init
->start
runningExperiments
->getRunningExperimentsAndVariations
runningFeatureFlags
->getRunningFeatureFlags
reset
->resetUser
propertiesLoadedCallback
->waitForLoaded
(see below)
2) Methods Removed
The following methods have been removed
page
3) Launch Parameters Removed
The following launch parameters have been removed
auto_page_view
4) Sync Mode removed
The sync
mode for requiring the SDK on the page has been removed. The only supported method is now to include the SDK via npm or script tag and call Taplytics.start()
with your project token.
If you would like to block the load of your page, we would recommend having the render of the DOM wait on Taplytics by using the waitForLoaded() method to wait on the Taplytics.start()
method to run; this will cause the initial render of the page to be blocked until the SDK is initialized, preventing any content flickering from occurring.
5) Async methods return promises
All async methods in the SDK now return promises. Callbacks are no longer supported. Code usages of these methods should be updated, eg:
Taplytics.runningExperiments((experimentVars) => {})
becomes
const experimentVars = await Taplytics.getRunningExperimentsAndVariations()
Additionally, the following methods now return promises which did not previously support callbacks.
start
setUserAttributes
resetUser
startNewSession
Awaiting these methods allows you to wait for their respective operations to fully complete before proceeding.
6) propertiesLoadedCallback is now waitForLoaded
The propertiesLoadedCallback
method has been renamed to waitForLoaded
.
The method now returns a promise which can be awaited
to wait for the SDK to finish initializing and receiving its initial experiment configuration. Any subsequent calls to this method after the SDK has already initialized will resolve immediately.
7) Email field should not be used as an identifier
Previously, we would consider a user "identified" if either the user_id
or email
field were set during an identify
(now setUserAttributes
) call. Going forward, only the user_id
field will be considered an identifier, and if that field is not set, the user will be treated as ananonymous
user.
If your project does not use the user_id
field but does set email
, then we recommend setting the user_id
field to the same value as email
whenever the email
is set.
New Features
1) New Session Callback
It is now possible to set a callback to be executed whenever a new session is started (and a corresponding experiment configuration has been retrieved). This can be done as follows:
Taplytics.on('newSession', () => {
console.log('New session started!')
})
This can be useful if your application requires some logic to be run whenever a new Taplytics configuration is
received. For example, you may want to re-render a portion of your page using the new set of variable values.