---
title: BigQuery data specification
slug: experimentation-strategy/data-docs/bigquery-data-specification
docTags: 
createdAt: 2026-08-05T20:34:49.000Z
---

:::hint{type="info"}
This is a third-party integration and is not an Optimizely subprocessor. See Optimizely's [Third-Party Add-Ons & Platform Integration Terms](https://www.optimizely.com/legal/third-party-add-ons-platform-integration-terms/).
:::

This page describes the data schemas for Optimizely Experimentation data in BigQuery.

## Decisions

| Field                    | Type     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ------------------------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| \`uuid\`                 | String   | Event UUID generated by the client. Used to deduplicate 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 assigned to. For Personalization campaigns, explicitly send \`null\` as the \`experiment\_id\` for visitors not bucketed into any experiment. This is required to accurately compute campaign reach.                                                                                                                                                                                                                                                        |
| \`experiment\_id\_hash\` | Integer  | Integer-range partitioning column. Use \`ABS(MOD(FARM\_FINGERPRINT(experiment\_id), 4000))\` to filter queries by experiment ID.                                                                                                                                                                                                                                                                                                                                                                     |
| \`variation\_id\`        | String   | The ID of the variation the visitor was assigned to. For Personalization campaigns, explicitly send \`null\` as the \`variation\_id\` for visitors not bucketed into any experiment. This is required to accurately compute campaign reach.                                                                                                                                                                                                                                                          |
| \`user\_ip\`             | String   | User IP address.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| \`user\_agent\`          | String   | User-agent.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| \`anonymize\_ip\`        | Boolean  | When set to \`true\`, the last octet of the IP address is removed before storage. When \`false\`, the full IP address is stored. This setting is most relevant if your implementation runs in a web browser or mobile app and must comply with data privacy regulations. This flag is independent of the IP anonymization setting in Account and Project settings. If this flag is \`true\`, IP-based filtering does not work correctly, because anonymization occurs before IP filters are applied. |
| \`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 \\ | 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](docId\:oXXbZwSjG5w7SrxGHEDVx).

## Conversion

| Field                  | Type      | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ---------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| \`uuid\`               | String    | Event UUID generated by the client. Used to deduplicate 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. Optimizely **no 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    | Human-readable event name from the client, or \`multi-event\` when multiple events are batched.                                                                                                                                                                                                                                                                                                                                                                                                      |
| \`project\_id\`        | String    | (Optional) Only pass \`project\_id\` 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   | When set to \`true\`, the last octet of the IP address is removed before storage. When \`false\`, the full IP address is stored. This setting is most relevant if your implementation runs in a web browser or mobile app and must comply with data privacy regulations. This flag is independent of the IP anonymization setting in Account and Project settings. If this flag is \`true\`, IP-based filtering does not work correctly, because anonymization occurs before IP filters are applied. |
| \`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 \\  | An array of user attributes (also known as segments).                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| \`tags\`               | Map \\    | Key-value pairs of event tags.                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| \`properties\`         | Map \\    | Key-value pairs defining properties of the event. The value must be a string.                                                                                                                                                                                                                                                                                                                                                                                                                        |
| \`experiments\`        | Array \\  | An array of the campaigns, experiments, and variations the event is attributed to. Optimizely **no 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](docId\:oXXbZwSjG5w7SrxGHEDVx).
