- Optimizely X Full Stack
- Optimizely X Mobile
- Optimizely X OTT
THIS ARTICLE WILL HELP YOU:
- Learn the core components of all Optimizely SDKs
- Understand how Optimizely SDKs assigns users to experiments and variations
- Configure the Optimizely SDK to ensure that experiment assignments are sticky
Currently, Optimizely supports several SDKs available for running experiments in different applications:
At a high level, each SDK can be used for two things:
Traffic splitting: Determines which experiments and variations should be visible to a given user.
Event tracking: Tracks conversion events used to measure the success of an experiment.
This article describes exactly how Optimizely's SDKs make experiment assignment decisions. The decision criteria are exactly the same for all SDKs: i.e. if you use identical inputs for calls made to
(), you’ll get the same output across all SDKs.
Optimizely SDK decision flow
The following diagram summarizes the order of decisions to determine which variation (if any) of an experiment will be visible to a given user:
|Experiment status||Determines whether Optimizely's SDKs will honor the experiment||Manage experiments in Full Stack|
|User whitelisting||Can be used to force users into variations for QA purposes||QA: Whitelist users in an SDK experiment|
|User profiles||Can persist information about your users between requests||Optimizely developer docs|
|Audience targeting||Can be used to target users into experiments||Create audiences and attributes in SDK projects|
|Exclusion groups||Keep experiments mutually exclusive||Create mutually exclusive experiments in SDK projects|
|Traffic allocation||Determines the percentage of the site's total traffic that get to see your experiment||Create experiments in an SDK project|
|Traffic distribution||Determines the fraction of the experiment’s allocated traffic that is assigned to each variation||Create experiments in an SDK project|
If you pause a variation mid-experiment, no variations stored in the user profile will be honored. For more information about pausing variations, see this article.
For information on how bucketing works in Optimizely, see this article.