Impressions and decisions
Describes when Optimizely Feature Experimentation sends impressions and decision data.
Optimizely Experimentation records an impression when a user is exposed to a flag variation. Specifically, Optimizely logs an impression through the following sequence:
- The Feature Experimentation SDK makes a decision for a user in an experiment through a
Decide
method. - As a result, the SDK sends an SDK decision event asynchronously to the Optimizely Event API. If the decision event indicates that the user is bucketed into an experiment, then Optimizely logs an impression, even if the user buckets into a disabled (or "off") variation and does not see the feature flag.
Impressions generate the visitor counts on the Experimentation Results page. They also serve as the denominator for measuring conversion rates.
Decision event
Use the Decide
methods to return a flag decision for a user. The flag decision includes flag-enabled or disabled status and flag variation.
A decision event is an SDK action that triggers a network request. To avoid the request, you can disable dispatching decision events for the Decide
method using the SDK's event dispatcher.
For information, see the Decide
method for your SDK language:
- Android SDK
- C# SDK
- Go SDK
- Flutter SDK
- Java SDK
- Javascript (Browser) SDK
- JavaScript (Node) SDK
- PHP SDK
- Python SDK
- React SDK
- React Native SDK
- Ruby SDK
- Swift SDK
See the event dispatcher documentation for your SDK for information on managing network requests:
- Android SDK
- C# SDK
- Flutter SDK
- Go SDK
- Java SDK
- JavaScript (Browser) SDK
- JavaScript (Node) SDK
- PHP SDK
- Python SDK
- React SDK
- React Native SDK
- Ruby SDK
- Swift SDK
How the SDK triggers impressions
Impressions are sent
When the user is bucketed into an A/B test, regardless of whether the flag is enabled or disabled in the variation.
Optimizely logs the impression after receiving the decision event, indicating the user was bucketed into the experiment.
Examples:
- A new visitor lands on a page and is exposed to an experiment.
- A visitor refreshes a page and is exposed to the experiment again.
- A return visitor is exposed to the experiment again.
Impressions are not sent
- If the user is only bucketed into a targeted delivery rule, not an experiment rule.
- If no flag rule is running.
Note
You must make sure that your local datafile has been updated after pausing or archiving a test to ensure you no longer send impressions to Optimizely.
Impressions deduplication
Depending on your application logic, your users may trigger rapid bursts of impressions. To avoid overcounting these bursts on your Experimentation Results page, Optimizely uses fixed-interval impressions deduplication. All impressions received within fixed 5-second intervals count as one impression for each user in an experiment—Optimizely Experimentation buckets events into the fixed time windows based on when Optimizely Experimentation receives the event.
Updated 6 months ago