This article describes how we handle scheduled exports of your experience configuration data to your systems.
This export complements our scheduled exports of raw analytics data. The raw analytics export tells you what visitors did. This export tells you which tests those events belong to: their names, status, variations, traffic allocation and key dates.
What data is included?
The export contains one row per experience (test) in your account. Each row includes:
Project and test IDs, names, descriptions and your project alias
Test type and current status, including whether the test is paused or archived
Key dates: created, last updated, went live, completed and archived
Traffic throttling at project and test level
Each variation's ID, name, traffic allocation and whether it is the control
Targeting references, such as the segment and location the test uses
Data schema
Column | Type | Description | Example |
account | Number | Your account ID. Matches DID in the raw analytics export. | 2000001 |
projectId | Number | Project ID | 2000001 |
testId | Number | Test ID | 2000001 |
Created | DateTime | When the test was created | 2025-01-01 00:00:00.000 |
Updated | DateTime | When the test was last changed | 2025-01-01 00:00:00.000 |
state | Number | Deletion flag. 0 = active, 1 = deleted. | 0 |
testType | Number | 1 = AB, 2 = Target, 3 = Baseline | 1 |
testState | Number | 0 = Pending, 1 = Live, 2 = Staging, 3 = Published, 4 = Archived | 1 |
segmentId | Number | ID of the segment used to target the test, or NULL if none | 2000001 |
locationId | Number | ID of the location the test runs on | 2000001 |
moniker | String | Your project alias value | ta_1HomepageBannersAB |
projectName | String | Project name | 1 - Homepage Banners AB |
projectDescription | String | Project description, or blank |
|
projectThrottleValue | Number | % of traffic allowed into the project (0–100) | 100 |
projectMetaData | XML | Project configuration, including project type, environment and counts of active and completed runs |
|
testName | String | Test name | 1 - AW26 - All devices |
testDescription | String | Test description, or blank |
|
testThrottleValue | Number | % of traffic allowed into the test (0–100) | 100 |
testMetaFields | JSON | Custom metadata fields set against the test, or empty array | [] |
testDateActive | DateTime | When the test went live, or NULL | 2025-01-01 00:00:00.000 |
testDateComplete | DateTime | When the test was completed, or NULL | 2025-01-01 00:00:00.000 |
testArchive | DateTime | When the test was archived, or NULL | 2025-01-01 00:00:00.000 |
paused | Number | 1 if the test is paused, 0 if not | 0 |
expPin | Number | If one variation is being shown to all users, that variation's ID. Otherwise 0. | 0 |
factors | JSON | The test's factors. AB tests have a single factor. |
|
variations | JSON | One object per variation: itemID, name, allocation, control flag and segmentKey (see below) |
|
experiments | JSON | Traffic allocation keyed by variation ID |
|
author | String | User who created the test, or blank |
|
priority | Number | The test's position in its project's priority ranking, used to decide which test is shown when several compete | 0 |
The variations column
Each object in variations describes one variation:
itemID: the variation ID. This matches ExperimentID in the raw analytics export.
name: the variation name, such as "Control" or "Variant 1".
control: true for the control, false for challengers.
allocation: the % of the test's traffic sent to this variation. It is null when the split hasn't been changed from the default even split.
segmentKey: a segment reference for the variation, or null.
Joining to your raw analytics data
Use these keys to link the two exports:
Raw analytics column | Experience export column | How they match |
DID | account | Same value |
TID | projectId + testId | TID is the project ID followed by the test ID. For example, project 2000001 and test 2000002 give TID 20000012000002. |
ExperimentID | variations → itemID | Same value |
For example, to attach test names to events:
SELECT e.*, t.testName FROM raw_events e JOIN experiences t ON e.TID = CAST(CONCAT(t.projectId, t.testId) AS BIGINT)
How is the data delivered?
We deliver a CSV file daily, overnight. Each file is a full snapshot of all your experiences as they stood at the time of the export, typically midnight.
Because every file is a complete snapshot, you can replace your table with each new file rather than merging changes. If you want to track how tests change over time, keep each day's file.
Available Destinations
This is a growing list for us, but current destinations include:
SFTP
For this, we will need the following:
Host / IP address
Port number, usually 22
Username
Password
Folder, if not /
Azure Blob Storage, AWS S3
For this, we will need the following:
Account name
Container name
Connection strings, if appropriate
Access keys, if appropriate
Snowflake (coming soon)
Soon, we will be able to upload your data into Snowflake in a shared Table.
Data will be retained for a week, and we expect you to copy it into your own tables using scheduled copy jobs in services like Snowpipe.
To do this, we will create a Direct Share, and just need to know which account to share data with.
If you already receive the raw analytics export, we can deliver this file to the same destination.
How do I request a scheduled export?
Create a support request for us, with a ticket in the support portal or an email to [email protected].
