Optimizely tracking
The web tracker supports Optimizely and OptimizelyX with two different plugins.
The Optimizely context entities are automatically tracked once configured.
OptimizelyX
Support for OptimizelyX has been introduced in the tracker, you can have a look at the JsonSchema here to see what is being captured.
Install plugin
- JavaScript (tag)
- Browser (npm)
Tracker Distribution | Included |
---|---|
sp.js | ✅ |
sp.lite.js | ❌ |
Download:
Download from GitHub Releases (Recommended) | Github Releases (plugins.umd.zip) |
Available on jsDelivr | jsDelivr (latest) |
Available on unpkg | unpkg (latest) |
Note: The links to the CDNs above point to the current latest version. You should pin to a specific version when integrating this plugin on your website if you are using a third party CDN in production.
window.snowplow('addPlugin',
"https://cdn.jsdelivr.net/npm/@snowplow/browser-plugin-optimizely-x@3/dist/index.umd.min.js",
["snowplowOptimizelyX", "OptimizelyXPlugin"]
);
npm install @snowplow/browser-plugin-optimizely-x@3
yarn add @snowplow/browser-plugin-optimizely-x@3
pnpm add @snowplow/browser-plugin-optimizely-x@3
import { newTracker, trackPageView } from '@snowplow/browser-tracker';
import { OptimizelyXPlugin } from '@snowplow/browser-plugin-optimizely-x';
newTracker('sp1', '{{collector_url}}', {
appId: 'my-app-id',
plugins: [ OptimizelyXPlugin() ],
});
Context entity
Adding this plugin will automatically capture this context entity (iglu:com.optimizely.optimizelyx/summary/jsonschema/1-0-0
).
If you’re planning on leveraging the entity’s variation names, you’ll have to untick ‘Mask descriptive names in project code and third-party integrations’ in the OptimizelyX menu -> Settings -> Privacy. Otherwise, all variation names will be null.
Optimizely Classic
Install plugin
- JavaScript (tag)
- Browser (npm)
Tracker Distribution | Included |
---|---|
sp.js | ✅ |
sp.lite.js | ❌ |
Download:
Download from GitHub Releases (Recommended) | Github Releases (plugins.umd.zip) |
Available on jsDelivr | jsDelivr (latest) |
Available on unpkg | unpkg (latest) |
Note: The links to the CDNs above point to the current latest version. You should pin to a specific version when integrating this plugin on your website if you are using a third party CDN in production.
npm install @snowplow/browser-plugin-optimizely@3
yarn add @snowplow/browser-plugin-optimizely@3
pnpm add @snowplow/browser-plugin-optimizely@3
Initialization
- JavaScript (tag)
- Browser (npm)
window.snowplow('addPlugin',
"https://cdn.jsdelivr.net/npm/@snowplow/browser-plugin-optimizely@3/dist/index.umd.min.js",
["snowplowOptimizely", "OptimizelyPlugin"],
[true, true, true, true, true, true, true]
);
The parameter array of booleans is used to initialize the plugin. If you do not include this, all the Optimizely contexts will be included. To alter this behavior you can flip some of the booleans. The array represent enabling the following contexts:
[
summary: boolean,
experiments: boolean,
states: boolean,
variations: boolean,
visitor: boolean,
audiences: boolean,
dimensions: boolean
]
import { newTracker, trackPageView } from '@snowplow/browser-tracker';
import { OptimizelyPlugin } from '@snowplow/browser-plugin-optimizely';
newTracker('sp1', '{{collector_url}}', {
appId: 'my-app-id',
plugins: [ OptimizelyPlugin() ],
});
The constructor parameters allow for configuration of the contexts to include. If you do not specify any, all the Optimizely contexts will be included. To alter this behavior you can flip some of the booleans. The constructor has the following definition:
OptimizelyPlugin(
summary: boolean = true,
experiments: boolean = true,
states: boolean = true,
variations: boolean = true,
visitor: boolean = true,
audiences: boolean = true,
dimensions: boolean = true
)
Context entities
Adding this plugin will automatically capture the following context entities: