Optimizely will be sunsetting Full Stack Experimentation on July 29, 2024. See the recommended Feature Experimentation migration timeline and documentation.

Dev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket
These docs are for v2.0. Click to read the latest docs for v3.0.

Manage Impressions

To measure the effects of an experiment, Optimizely tracks which users were exposed to each variation. The SDK tracks each exposure by sending an impression event back to Optimizely's servers, triggering a network request with the event dispatcher and a notification listener for any integrations.

Impressions are sent any time the Activate method returns a variation. They are not sent if the method returns null, because the user didn't qualify for any experiment.

Impressions are also sent when the user is bucketed into a feature test with the Is Feature Enabled or Get Enabled Features method, regardless of whether the feature is enabled or disabled in the feature test variation. Impressions are not sent if the user is only exposed to a feature rollout, or if neither a test nor rollout is running.

Impressions are used to generate the visitor counts on the Results page, which serve as the denominator for measuring conversion rates.


Billing Update

Starting September 2020, Optimizely has introduced a simplified usage billing component: Monthly Active Users (MAUs), which replaces impressions.

Get variations without sending an impression

In some cases, you may want to evaluate an experiment without triggering an impression event. For example, in an isomorphic React app, you may want to activate experiments on the server-side but not trigger a second impression when the same code runs client-side.

You can use the Get Variation method to see which variation key a user would get if you were to call Activate. Get Variation has the exact same behavior as Activate, except that it will not send a network request. This means that if you only use Get Variation, you will not see any results for your experiment.

The table list common scenarios and the appropriate method to use for a scenario.

- You want to retrieve a variation assignment and also have results to display in Optimizely's reporting interface.Activate
- You want to retrieve an experiment decision to pass to another service for later activation.

- You want to perform unit, functional, integration, and other QA tests.
Get Variation