Skip to main content


Optimizely Knowledge Base

The Optimizely X Full Stack SDKs: How they work

  • Learn the core components of all Optimizely X Full Stack SDKs
  • Understand how Optimizely X Full Stack SDKs assign users to experiments and variations
  • Configure the Optimizely X Full Stack SDK to ensure that experiment assignments are sticky

Currently, Optimizely X Full Stack supports a number of SDKs 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 Full Stack SDKs make experiment assignment decisions. The decision criteria are exactly the same for all SDKs: if you use identical inputs for calls made toactivate(), get_variation(), ortrack(), you’ll get the same output across all SDKs.

Optimizely X Full Stack 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: Whitelisting users in a Full Stack 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 Full Stack projects
Exclusion groups Keep experiments mutually exclusive Create mutually exclusive experiments in Full Stack projects
Traffic allocation Determines the percentage of the site's total traffic that get to see your experiment Create experiments in a Full Stack project
Traffic distribution Determines the fraction of the experiment's allocated traffic that is assigned to each variation Create experiments in a Full Stack project

If you pause a variation mid-experiment, no variations stored in the user profile will be honored. Learn more about pausing variations.

You can also learn how bucketing works in Full Stack SDKs.