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.
Starting September 2020, Optimizely has introduced a simplified usage billing component: Monthly Active Users (MAUs), which replaces impressions.
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
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.
|- 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.
Updated 3 months ago