Skip to content
Browse documentation

Raw data export to your storage

Deliver every click and conversion, hour by hour, as gzip JSON lines or CSV to your own S3-compatible bucket (AWS S3, DigitalOcean Spaces, Google Cloud Storage, Cloudflare R2, MinIO).

Last updated 5 min read

On this page

The raw data export copies the complete click and conversion log of your workspace into a bucket you own, so you can load it into BigQuery, Snowflake, Athena, Redshift or any warehouse. It runs in the background every hour; nothing has to be triggered by hand.

Configure it under Tracking → Integrations → Data export (https://app.trackcrown.com/app/integrations?tab=export). Admins and owners can add, edit, pause and remove destinations; analysts and managers can see them.

Before you start#

You need an S3-compatible bucket and an access key that may write objects (PutObject) to it. The key needs no read, list or delete permission.

StorageEndpoint
AWS S3https://s3.<region>.amazonaws.com
DigitalOcean Spaceshttps://<region>.digitaloceanspaces.com
Google Cloud Storage (HMAC keys)https://storage.googleapis.com
Cloudflare R2https://<account>.r2.cloudflarestorage.com
MinIO and other S3-compatible servicesYour server's https:// endpoint

Requests are signed with AWS Signature V4 and use path-style URLs (https://<endpoint>/<bucket>/<key>).

Add a destination#

  1. Open Integrations → Data export and click Add destination.
  2. Fill in the form:
FieldRequiredNotes
NameYesDefault "Raw data". Up to 120 characters.
EndpointYeshttps:// host of the storage service, optionally with a port, no path. Example: https://nyc3.digitaloceanspaces.com.
BucketYes3–63 lower-case letters, digits, dots and dashes.
RegionNoEmpty = us-east-1. Use the bucket's region (lower-case letters, digits and dashes); it is part of the request signature.
Folder (prefix)NoDefault trackcrown. Letters, digits, ., _, - and /; leading and trailing slashes are removed.
Access key IDYes
Secret access keyYes (new)Stored encrypted. When editing, leave it empty to keep the stored key.
DataYesClicks, Conversions or both.
FormatYesJSON lines (gzip) or CSV with header (gzip).
  1. Click Add destination. The first run exports the last complete hour.

A workspace can have at most 5 destinations ("A workspace can have at most 5 export destinations.").

Files#

One gzip file is written per data set and hour (UTC):

Text
<prefix>/<dataset>/dt=YYYY-MM-DD/hour=HH/<dataset>-<workspace id>-YYYYMMDDHH.<jsonl|csv>.gz

Example for workspace 42, prefix trackcrown, JSON lines:

Text
trackcrown/clicks/dt=2026-10-12/hour=09/clicks-42-2026101209.jsonl.gz
trackcrown/conversions/dt=2026-10-12/hour=09/conversions-42-2026101209.jsonl.gz

The dt= / hour= folders are Hive-style partitions, so Athena, BigQuery external tables and Spark can prune by date. Objects are uploaded with Content-Encoding: gzip and content type application/x-ndjson (JSON lines) or text/csv (CSV). An hour without traffic still produces a file (empty, or only the CSV header).

What is in the files#

Data setRowsTime column
clicksEvery click of the hour: click ID, link type, offer, affiliate, advertiser, smart link, status and reason, unique and bot flags, sub IDs and source ID, ad-platform click IDs (gclid, gbraid, wbraid, fbclid, msclkid, ttclid), ValueTrack fields, geo, device, browser, IP (truncated where IP masking applies), user agent, referrer and extra parametersts
conversionsEvery conversion stored in the hour (deleted rows excluded), with its latest version: conversion ID, click ID and time, offer, affiliate, advertiser, event, status and reason, duplicate flag, method, revenue, payout, sale amount, currency, advertiser order ID (adv_txid) and click dimensionsconv_ts

Times are UTC. Money columns are decimal values in the conversion's currency.

Timing and catch-up#

BehaviourValue
Run intervalEvery hour
Exported hoursComplete hours only: an hour is exported once it ended more than 5 minutes ago
Per runUp to 24 hours per destination (a destination that was paused or failing catches up 24 hours per run)
OrderOldest hour first; Exported until moves forward only after every data set of that hour was uploaded

Monitoring#

Each destination card shows:

FieldMeaning
Status badgeactive, paused or error
DataThe data sets exported
Exported untilEnd of the last fully exported hour ("Not yet" before the first run)
Files 24 hFiles uploaded in the last 24 hours and their total size
Failed 24 hFailed uploads in the last 24 hours
Error lineThe last error, for example storage answered HTTP 403: …

Errors#

  • Temporary errors (network, HTTP 5xx, ClickHouse unavailable) stop the run for that destination; the same hour is retried on the next run. Nothing is skipped.
  • HTTP 401 or 403 from the storage service, an invalid endpoint or an unreadable secret set the destination to error. Error destinations are not retried. Fix the key or bucket policy, then open Edit and Save: saving sets the destination back to active and clears the error.

Pause, edit, remove#

Use the ⋯ menu on a destination:

  • Edit — change any field; saving re-activates the destination.
  • Pause / Resume — a resumed destination continues from Exported until (up to 24 hours per run).
  • Remove — "Exports stop and the key is deleted. Files already uploaded stay in your bucket."

Limits#

  • S3-compatible storage only. SFTP, Google Pub/Sub, Kafka and direct BigQuery/Snowflake streaming are not available.
  • Impressions and partner postback logs are not exported.
  • The click log itself is kept for 13 months (Data retention); export continuously if you need a longer history.
Something unclear or missing in this article?Tell us