Export

One control on four screens, two formats, the screen's own window. The file carries the rows the screen shows, column by column, and every boundary that cut it is stated in the file.

Updated October 26, 2026

Export downloads what a screen shows as CSV or JSON: the Overview's sessions under the lens and period in the URL, or one visitor's, one connection's or one signature's paid sessions. It is on Solo, Growth, Agency and Enterprise; on Free and Starter the control wears a lock. A file never reaches further back than your plan's window, and every boundary that cut it is stated in the file.

The control

"Export", with a download glyph, in the header's action cluster beside the period control. It opens a menu headed "Download" with two rows: CSV, "Spreadsheet", and JSON, "Structured". Pick one and the trigger reads "Preparing…" until the file lands; the browser then saves it under the name the server gave it. On hover the control reads "Export what this screen shows".

When the download fails, the trigger reads "Export failed" with a warning glyph, the menu carries the server's own reason, and the two rows sit under "Try again". A refused plan reads "Export is not available on this plan."; an unreachable export service reads "Export service unreachable".

When the plan does not carry export, the control stays: it wears a lock, muted, and still opens. What it opens is the reason, "Export starts at Solo", and a "See plans" row that goes to Plans and billing.

Where it is

There is one export control in the app, and it takes a scope. Four screens carry it:

ScreenWhereWhat the file holds
OverviewThe header's action cluster, beside the period controlThis screen's sessions: the paid sessions of the window, under the network or campaign lens in the URL
One visitorThe header, beside Pin and NoteThis visitor's paid sessions
One connectionThe headerThis address's paid sessions
One signatureThe header, on a signature onlyThis signature's members

A configuration group on the Signatures screen has no export, so its header carries no control. No other screen carries one.

The lock is drawn before you click. Any member of the workspace can export, whatever their role.

Which plans

Export is a line of the plan grid: off on Free and Starter, on from Solo. A download on a plan without export reads "Export is not available on this plan."

PlanExport
Free—
Starter—
Soloyes
Growthyes
Agencyyes
Enterpriseyes

The window

An export carries exactly the screen's scope and the window the page shows: the period in the URL, else the last period you picked, else the last 7 days. The Overview's file also takes the network and campaign lens from the URL; with no lens, the file is the whole site, every paid network, and its network column is empty on every row.

A visitor's and a connection's file take the same period: the one the URL carries, which is the lens and period you drilled from. That is not the fixed 30-day window those two screens read for their own counts and lists.

A signature's file covers the days of the signature itself, so a link and its file cover the same days; the period does not change them, and the plan's window still applies.

Then the plan's two boundaries apply, in the same way they apply on screen:

  • The window. The start moves forward to the earliest day your plan may read. The file says so with X-IADS-Window-Clamped and, in JSON, window_clamped. A custom range that sits entirely before that day downloads an empty file, headers and no rows, named for the range you asked; the Overview would show the plan's whole window instead.
  • The month's event allowance. Where the screens' reads stop, the file stops. It says so with X-IADS-Cap-Clamped and the instant in X-IADS-Cap-Cutoff, and in JSON with cap_clamped and cap_cutoff. The events are kept; the allowance bounds the read.

A file carries at most 50,000 rows, and X-IADS-Truncated reads true when that cut it. The 50-row log a drill screen shows does not bound the file.

Two formats

CSV is UTF-8, a header row of column names, then one line per session. A boolean writes true or false; a value that was not observed writes an empty cell. The Overview's trace column flattens the timeline into kind@seconds pairs separated by semicolons.

JSON is one object with meta first, then sessions, an array of one object per row with the same column names as keys. The meta block carries org_id, site_id, site, generated_at, the period asked for, the start and end the plan permitted, window_clamped, cap_clamped, cap_cutoff, the scope's own identity (the Overview's network and campaign; a visitor's visitor and fields; a connection's ip; a signature's signature, block_start, block_end, campaign, facet and value), plan, redacted, rows and truncated.

A fact the plan withholds is never written as an empty cell, because an empty cell would assert "not observed". In CSV the column is left out of the file and X-IADS-Redacted names it; in JSON the field is null on every row and named in meta.redacted. On every plan that carries export the set is empty: those plans hold every fact the files can withhold, so meta.redacted is an empty list and the header is empty.

PDF is not a format: the control offers CSV and JSON.

The Overview's file

One row per paid session of the window, as the live feed lists them. Twenty-five columns, in this order:

ColumnWhat it holds
session_idThe session's id, as the tracker minted it
atWhen the session arrived, the click, in UTC
last_seen_atThe session's latest event, in UTC
networkThe lens the file was exported under. Empty on every row when the file is the whole site
campaignThe campaign
termThe searched term, when the click carried one
surfaceWhere the ad ran: youtube, search, display or feed; empty when the referrer names no surface
landing_pathThe first page view's path
last_pathThe latest page view's path
countryThe country
cityThe city
connectionThe connection type: home, mobile, company, government, cloud, vpn, relay or tor. An observed attribute, not a verdict
providerThe brand behind the connection: the mobile carrier on a mobile connection, otherwise the operator of the address space
device_typeThe device type
visitor_idThe browser's id. Empty when the browser blocked storage
client_ipThe address. Masked to its prefix on a plan that withholds the full address; every plan with export shows it whole
tz_mismatchtrue when the browser's clock disagrees with the timezone the address resolves to
new_browsertrue when no event of any kind preceded this session, looking back to 30 days before the file's first day
returning_sinceThe day of the browser's most recent ad click before this session, within the same lookback
returning_clicksHow many distinct billed click ids the browser carried before this session, within the same lookback
pagesPage views across the session
activityScroll and outbound-click events across the session
clicksDistinct billed click ids this session carries
conversionprimary or secondary, the highest tier observed; empty when none was
traceThe session's timeline, up to 40 points: each point's kind, page, act or conv, at its seconds since the session started

A visitor's or a connection's file

The two files share one template, column for column, because they answer the same question about the same sessions. One row per paid session, newest first. One shape for every ad network, with a single network_click_id column.

ColumnWhat it holds
networkThe ad network, stated by each row
network_click_idThe click id that network minted, from the landing. The join key with the network's own data
billed_clicksDistinct click ids the session carried. Beside the click id because a session can carry several, and this count explains the difference against the network's own click count
session_idThe session's id
visitor_idOn a visitor's file, the id the file is for, repeated on every row. On a connection's file, the browser behind each row; empty when that browser blocked storage, which is the case a visitor's file can never carry
first_seenThe session's first event, in UTC
last_seenThe session's latest event, in UTC
campaignThe campaign
termThe searched term
creativeThe ad's own id, utm_content
landing_pathThe first page view's path
countryThe country
regionThe region
cityThe city
connectionThe connection type, same vocabulary as the Overview's file
providerThe brand behind the connection
conversionprimary, secondary or empty
pagesPage views across the session
engagementScroll and outbound-click events across the session
client_ipThe address, masked per plan. Off by default on a visitor's file, on by default on a connection's file, where it is the file's own key

The ids travel as they are, not hashed. session_id and visitor_id are the random values the tracker minted in the browser on your domain, so a CRM that captured them there joins on the same values.

A signature's file

A signature's members are clicks from many addresses and many browsers, so the file takes the connection template whole, client_ip on by default and visitor_id a per-row fact, and adds the facts the signature was read on. One row per click, in chronological order.

ColumnWhat it holds
clockmatch when the browser's clock agrees with the time zone the address resolves to, utc when the clock is on UTC while that zone is not, offset for any other disagreement
browser_offsetThe browser's timezone offset, in minutes
ip_timezoneThe time zone the address resolves to
languageThe browser's language
referrer_hostThe host of the referrer
surfaceWhere the ad ran
reopened_atWhen the same click id was next seen in another session from another address, within an hour of the click. Empty when it was not
reopened_ipThe address it was reopened from, masked per plan

The file carries no configuration column and no count or rate the screen derives. A configuration group cannot be exported: asking for one is refused.

The filename

The file is named so that downloads tell themselves apart in a folder. The parts, joined with hyphens:

PartWhen
intelligenceadsalways
the site's domain, or its namealways
visitor- and the first eight characters of the ida visitor's file
address- and the address, its dots replaceda connection's file. A masked address stays masked in the name
signature-, the block's first and last day, the trait and its valuea signature's file
the network, then the campaignthe Overview's file, when the lens carries them
the first and last day covered, joined with an underscorealways. With nothing readable, the range you asked for

Every part is lower-case ASCII, accents folded, and cut at forty characters. The extension is .csv or .json.

What the file states

The headers the download carries, readable by anything that fetches the file:

HeaderWhat it says
Content-DispositionThe filename
X-IADS-RowsHow many rows the file holds
X-IADS-Truncatedtrue when the 50,000-row ceiling cut the file
X-IADS-Window-Clampedtrue when the plan's window pulled the start forward
X-IADS-Cap-Clampedtrue when the month's event allowance stopped the rows
X-IADS-Cap-CutoffThe instant the rows stop at, when the allowance bit; empty otherwise
X-IADS-RedactedThe field names the plan withheld, comma-separated; empty when nothing was withheld, which is every plan with export

The JSON repeats them in meta, where cap_cutoff is null and redacted an empty list rather than absent.

Choosing columns

On a visitor's file, fields in the download URL edits the default columns: fields=client_ip adds the address, -name removes a column. network_click_id cannot be removed, since a file without it cannot be joined with the network's own data. A column added on a plan that withholds it is still withheld.

What the export does not do

  • It is not a side door. A file never reaches further back than the plan's window and never past the month's allowance: what the screen cannot show, the file cannot carry. Upgrading widens the window, and the history was kept all along.
  • It does not substitute. A range entirely before the plan's first readable day downloads an empty file named for that range.
  • It does not empty a withheld column. The column leaves the CSV and is named in the header; in JSON it is null and named in the meta.
  • It does not hash the ids, so the file can be joined with your own records.
  • It does not put a configuration in a file. A signature's file has no configuration column, and a configuration group has no export at all.
  • It does not grade a row. connection, tz_mismatch, clock and reopened_at are observed attributes; there is no verdict column.
  • It does not render a PDF, and it does not pass 50,000 rows silently.

Questions

Why is my file shorter than the period I picked?
Three boundaries can cut it, and each one is stated. The plan's window pulls the start forward (X-IADS-Window-Clamped, or window_clamped in the JSON meta), the month's event allowance stops the rows at an instant (X-IADS-Cap-Clamped and X-IADS-Cap-Cutoff), and one file never carries more than 50,000 rows (X-IADS-Truncated). The events themselves are kept; the file reads what your plan reads.
Can I export on Free?
No. Free and Starter do not carry export. The control stays on the screen with a lock, opens on "Export starts at Solo" and offers "See plans". Solo, Growth, Agency and Enterprise carry it.
Which window does a visitor's file cover?
The period in the URL, the one you drilled from, else the last period you picked, else the last 7 days, clamped to your plan's window. It is not the fixed 30-day window the visitor screen itself reads.
Why does a visitor's file not carry the address?
The client_ip column is off by default on a visitor's file; the click id is the join the ad networks use. Add fields=client_ip to the download URL to include it. On a connection's file the address is the file's own key, so it is on by default.
Does the CSV carry the session timeline?
On the Overview's file, yes. The trace column writes each point as its kind (page, act or conv), an at sign, and the seconds since the session started, with the points separated by semicolons. The JSON carries the same points as objects.