Disclaimer: This website requires Please enable JavaScript in your browser settings for the best experience.

The availability of features may depend on your plan type. Contact your Customer Success Manager if you have any questions.

Dev GuideRecipesAPI ReferenceChangelogDiscussions
Dev GuideAPI ReferenceUser GuideGitHubDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

BigQuery data specification

Data specification of Optimizely Experimentation data included in the BigQuery data export.

📘

Note

This is a third-party integration and is not an Optimizely subprocessor. See Optimizely's Third-Party Add-Ons & Platform Integration Terms.

Data schemas for Optimizely Experimentation data in BigQuery.

Decisions

Field

Type

Description

uuid

String

Event uuid generated by the client. Used to de-duplicate events.

timestamp

Integer

Event timestamp (in UTC).

account_id

String

Account identifier.

visitor_id

String

A unique identifier for the visitor.

session_id **

String

Optimizely no longer automatically generates the session_id as of October 9, 2023.

campaign_id

String

The id of the campaign containing this experiment.

experiment_id

String

The id of the experiment the visitor was exposed to.

For Personalization campaigns, you should explicitly send null as the experiment_id for visitors not bucketed into any experiment, for the purpose of accurately computing campaign reach.

Optimizely no longer automatically generates the session_id as of October 9, 2023, you can add it manually.

experiment_id_hash

Integer

Integer-range partitioning column. Use ABS(MOD(FARM_FINGERPRINT("experiment_id"), 4000)) to query.

variation_id

String

The id of the variation the visitor was exposed to.

For Personalization Campaigns, clients should explicitly send null as the variation_id for visitors not bucketed into any experiment, for the purpose of accurately computing campaign reach.

user_ip

String

User IP address.

user_agent

String

User-agent.

anonymize_ip

Boolean

Optimizely typically stores the client IP address for each request. If this flag is true, the last octet of the IP will be truncated before it is stored. If false, the entire IP address will be stored. This is most relevant for consumers of this API that are implemented in a web browser or mobile client context who are subject to policies or regulation restricting the storage of end-user identifying information.

This flag is independent of the IP anonymization setting in the Account and Project settings, which only controls how Optimizely clients set this flag. If this flag is set, care must be taken when using the IP filtering feature, as fully-qualified explicit IP addresses will not function as filters (anonymization occurs before events are filtered by IP).

referer

String

HTTP referer (the page from which the event was sent).

is_holdback

Boolean

A boolean indicating if the visitor is bucketed into the experiment based on the traffic allocation settings. If set to true, the user was excluded from the experiment.

client_engine

String

Client engine string (for example, 'js' or 'node-sdk').

client_version

String

Client version.

revision

String

Client snippet revision.

attributes

array <id:String, type:String, value:String>

An array of user attributes (also known as segments).

process_timestamp

Integer

Timestamp set by the server. Indicates when the event was processed by the server (in UTC).

** Optimizely no longer automatically generates the session ID as of October 9, 2023, but you can add it manually. See the Experimentation Analytics October 2023 release notes

Conversion

Field

Type

Description

uuid

String

Event uuid generated by the client. Used to de-duplicate events.

timestamp

Timestamp

Event timestamp in UTC.

account_id

String

Account identifier.

visitor_id

String

A unique identifier for the visitor.

session_id **

String

Unique session ID. Optimizelyno longer automatically generates the session ID as of October 9, 2023.

entity_id

String

Event entity identifier.

event_type

String

Event type (click, pageview, custom, or client_activation).

event_name

String

Friendly event name (from a client or 'multi-event' in case of multiple events).

project_id

String

(Optional) The project_id needs only to be passed if you are using the Optimizely Recommendations product.

revenue

Integer

Revenue (in cents).

value

Float

The value used to compute value or numeric metrics.

quantity

Integer

Quantity metric value.

user_ip

String

User IP address.

user_agent

String

User-agent.

anonymize_ip

Boolean

Optimizely typically stores the client IP address for each request. If this flag is true, the last octet of the IP will be truncated before it is stored. If false, the entire IP address will be stored. This is most relevant for consumers of this API that are implemented in a web browser or mobile client context who are subject to policies or regulation restricting the storage of end-user identifying information.

This flag is independent of the IP anonymization setting in the Account and Project settings, which only controls how Optimizely clients set this flag. If this flag is set, care must be taken when using the IP filtering feature, as fully-qualified explicit IP addresses will not function as filters (anonymization occurs before events are filtered by IP).

referer

String

HTTP Referer (the page from which the event was sent).

client_engine

String

Client engine string (for example, 'node-sdk').

client_version

String

Client version.

revision

String

Client snippet revision.

attributes

Array <id:String, name:String, type:String, value:String>

An array of user attributes (also known as segments).

tags

Map <key:String, value:String>

Key and value pair of event tags.

properties

Map <key:String, value:String>

Key value pairs defining properties or characteristics of the event. The value must be a string.

experiments **

Array <campaign_id:String, experiment_id:String, variation_id:string, is_holdback:Boolean>

An array of the campaigns, experiments, and variations the event is attributed to.

Optimizelyno longer automatically generates the experiments field as of October 9, 2023

process_timestamp

Integer

Timestamp set by the server. Indicates when the event was processed by the server (in UTC).

** Optimizely no longer automatically generates the session ID and experiments fields as of October 9, 2023. See the Experimentation Analytics October 2023 release notes.