Data Specification
Event Types
Enriched Events Export gives you access to the following:
- Decision events (also known as impressions): special events fired when Optimizely Experimentation "decides" that a visitor is bucketed into a certain experiment/variation pair.
- Decision events in Optimizely Feature Experimentation.
- Decision events in Optimizely Web Experimentation.
- Conversion events (also known as events): all other events that are fired when a visitor "converts" to a desirable action, such as a click, page view, or purchase.
- Conversion events in Optimizely Feature Experimentation.
- Conversion events in Optimizely Web Experimentation.
Your export contains the same decision and conversion event data that Optimizely uses to display your experiment results, or metrics, on the Results page. This means you can easily correlate your analysis with our Results page. For more information, see How Optimizely Experimentation counts conversions.
Event Content
Your event data contains the following:
Raw data as sent by the Optimizely client or Event API, including (but not limited to):
- event timestamp
- visitor ID
- event (entity) ID and event name
- user attributes
- event tags
- misc visitor and event metadata (user-agent etc.)
Enriched data generated by Optimizely’s server:
- (server) process timestamp
- session ID
- experiment ID
- variation ID
For full reference of the event data, see the schema section.
Access and inspect Enriched Events Export data
The data is stored in Parquet-formatted file parts. The number of file parts fluctuates and depends on the overall experiment record volume. parquet-tool is a handy tool to inspect the file content and schema.
The data is encrypted using AWS-KMS. To access the data, you need one of the following clients:
- AWS CLI version 1.11.108 or later
- AWS SDK released after May 2016
AWS S3 Partitioning
Your event data is exported in the following S3 partitions:
Decisions:
s3://optimizely-events-data/v1/account_id=<account_id>/type=decisions/date={YYYY-MM-DD}/experiment=<experiment_id>
Conversions:
s3://optimizely-events-data/v1/account_id=<account_id>/type=events/date={YYYY-MM-DD}/event=<event_name>
Legend
optimizely-events-data
: S3 bucket nameaccount_id
: Your unique account identifierdate
: The creation date of the dataexperiment_id
: Unique experiment identifier (used for the decisions partition)event_name
: Event (entity) identifier (used for the conversions partition)
Retention Policy
Optimizely Experimentation retains the files in your Enriched Events Export buckets for 1 year. Optimizely automatically deletes older data. We have implemented a GDPR workflow that complies with data deletion requirements laid out here.
Status File
The daily partition files are ready for import when the _SUCCESS
file is available at:
Decisions:
s3://optimizely-events-data/v1/account_id={account_id}/type=decisions/date={YYYY-MM-DD}/_SUCCESS
Conversions:
s3://optimizely-events-data/v1/account_id={account_id}/type=events/date={YYYY-MM-DD}/_SUCCESS
We recommend that you check for the presence of this file at regular intervals. If it is present, it is safe to start importing the daily partition data.
Schema
Decisions
Each row represents a single decision event.
Field | Type | Description |
---|---|---|
uuid | string (guid) | Event UUID generated by the client. Used to de-duplicate events |
timestamp | long (time millis) | Event timestamp in milliseconds |
process_timestamp | long (time millis) | Timestamp in milliseconds set by the server. Indicates when the event was processed by the server |
visitor_id | string | User/visitor identifier set by the client |
session_id | string | Unique session id generated by the server |
account_id | string | Account identifier |
campaign_id | string | Unique campaign id |
experiment_id | string | Unique experiment id Set to NULL if user is evaluated for the experiment and fails the audience condition. |
variation_id | string | Unique variation id. Set to NULL if user is evaluated for the experiment and fails the audience condition. |
attributes | array<id:string, name:string, type:string, value:string> | Array of user attributes (also known as segments) |
user_ip | string | User IP address |
user_agent | string | User agent |
referer | string | Client referer (page from which event was sent) |
is_holdback | boolean | Boolean indicating if the visitor is bucketed into the experiment based on the traffic allocation settings. If set to true , user has been excluded from the experiment. |
revision | string | Client snippet revision |
client_engine | string | Client engine string (e.g ‘js’, ‘node-sdk’). |
client_version | string | Client version |
Conversions
Each row represents a single conversion event.
Field | Type | Description |
---|---|---|
uuid | string (guid) | Event UUID generated by the client. Used to de-duplicate events |
timestamp | long (time millis) | Event timestamp in milliseconds |
process_timestamp | long (time millis) | Timestamp in milliseconds set by the server. Indicates when the event was processed by the server |
visitor_id | string | User/visitor identifier set by the client |
session_id | string | Unique session id generated by the server |
account_id | string | Unique account identifier |
experiments | array<campaign_id:string, experiment_id:string, variation_id:string, is_holdback:boolean> | Array of the campaign(s), experiment(s) and variation(s) the event is attributed to |
entity_id | string | Event entity identifier |
attributes | array<id:string, name:string, type:string, value:string> | Array of user attributes (also known as segments.) |
user_ip | string | User IP address. |
user_agent | string | User agent. |
referer | string | Client referer (page from which event was sent) |
event_type | string | Event type (click, pageview, custom or client_activation) |
event_name | string | Friendly event name (from client or ‘multi-event’ in case of multiple events) |
revenue | long | Revenue (in cents) |
value | double | Value used to compute value/numeric metrics. |
quantity | long | Quantity metric value |
tags | map<key:string,value:string> | Key/value pair of event tags |
revision | string | Client snippet revision |
client_engine | string | Client engine string (e.g ‘node-sdk’) |
client_version | string | Client version |
Updated over 1 year ago