Skip to main content
menu_icon.png

Everything you need to switch from Optimizely Classic to X in one place: See the Optimizely X Web Transition Guide.

x
Optimizely Knowledge Base

The Optimizely SDKs: How they work

  • 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.

Traffic splitting can be performed with the SDK’s activate() or get_variation() functions, and event tracking can be performed with the track() function.

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 toactivate(), get_variation(), ortrack(), 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:

Step Purpose Help article
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.