Filters & dimensions
Filters are query-string parameters. The dashboard writes them when you click something; the API accepts exactly the same names. Every navigation keeps the range and the other active filters, so drilling in never loses context.
The 26 filter keys
Section titled “The 26 filter keys”| Key | Chip label | Selects |
|---|---|---|
path |
Page | Events on this exact pathname |
query |
Query | Events whose surviving query string matches exactly |
title |
Title | Events with this document.title |
hostname |
Host | Events on this hostname |
entryPath |
Entry page | Events whose visit started on this page |
exitPath |
Exit page | Events whose visit ended on this page |
referrer |
Referrer | Referrer domain. The literal Direct / none selects “no referrer” |
utmSource |
UTM source | utm_source, or the ref/source/via fallback |
utmMedium |
UTM medium | utm_medium |
utmCampaign |
Campaign | utm_campaign |
utmTerm |
UTM term | utm_term |
utmContent |
UTM content | utm_content |
country |
Country | ISO-3166 alpha-2 code, e.g. DE |
region |
Region | First subdivision, English name |
city |
City | English city name |
language |
Language | navigator.language as sent, e.g. en-GB |
browser |
Browser | Parsed browser name |
os |
OS | Parsed operating system |
device |
Device | desktop, mobile, tablet, bot or unknown |
screen |
Screen | A bucket label, not a resolution — see below |
event |
Event | Visitors who fired this named event |
propKey |
Property | Events carrying this property key |
propValue |
Property value | Narrows propKey to one value |
traitKey |
Trait | Visitors who have this identify trait |
traitValue |
Trait value | Narrows traitKey to one value |
goal |
Converted | Visitors who converted this goal inside the range |
Parsing rules: a repeated parameter takes the first value, values are trimmed, and an empty value is dropped. Unknown parameters are ignored.
/dashboard/<siteId>?range=7d&country=DE&device=mobile&path=/pricingHow filters combine
Section titled “How filters combine”Every filter is an AND. There is no OR, no negation and no multi-select; one value per key.
Filters are applied at the event level. Session-level metrics — bounce
rate, average visit, views per visit — are then computed over the sessions
those events belong to. That is what keeps “bounce rate for /pricing”
meaningful: it is the bounce rate of the visits that touched /pricing, not a
number about /pricing alone.
Three keys behave differently, on purpose:
entryPath/exitPathare read off the session row, so they select visits rather than events.propKey/propValueare anEXISTSover the flattened property table, so an event with three matching properties is still counted once.traitKey/traitValueare anEXISTSover the visitor’s traits, so the filter keeps everything that visitor did, not just the hits that carried the trait.
The goal filter
Section titled “The goal filter”goal=<goal name> is the one filter that changes the meaning of the whole
screen. It keeps only visitors who converted that goal inside the current
range, so every other number then reads “…for people who converted”.
It is matched by name against your goals, and the match follows the goal’s own definition:
- An event goal matches events of type
custom,outboundorrevenuewhose name equals the goal’s event name. - A path goal matches pageviews whose path matches the pattern, with
*as the only wildcard.
The Sessions screen links into it — “See visitors who converted” on a goal
detail page opens /dashboard/<siteId>/sessions?goal=<name>.
Screen buckets
Section titled “Screen buckets”Raw resolutions are not reported. screen is one of six labels, and the filter
value is the label verbatim:
| Label | Width |
|---|---|
XS (< 576px) |
under 576 |
SM (576-767px) |
576–767 |
MD (768-991px) |
768–991 |
LG (992-1199px) |
992–1199 |
XL (1200-1599px) |
1200–1599 |
XXL (1600px+) |
1600 and up |
Dimensions
Section titled “Dimensions”A dimension is something you can group by. Twenty-one of them, and each one maps to the filter key of the same name — which is why clicking a row in a breakdown filters everything.
path entryPath exitPath title hostname query referrerutmSource utmMedium utmCampaign utmTerm utmContentcountry region city language browser os device screen eventTwo have special columns:
referrergroups on the referrer domain, withDirect / nonestanding in for null. Filtering by that exact string selects the null rows.eventonly ever groups overcustomandoutboundevents; plain pageviews have no name and never appear.
Rows whose value is null are dropped, so a dimension never shows an empty
label. entryPath and exitPath are counted once per session; every other
dimension reports unique visitors as the ranked value, with the raw event
count alongside.
Clicking a row
Section titled “Clicking a row”Every breakdown row is a link. It sets that dimension’s filter to the row’s name and keeps everything else — range, other filters, and the page you are on.
- The ✕ on a chip removes that one filter.
- Clear all appears with two or more chips and removes all 26 keys.
- Screens with their own paging (
page) and selection (session,step) reset those when a filter changes, so you never land on page 9 of a four-row list.
Filters and revenue
Section titled “Filters and revenue”A dashboard filter describes visits. A revenue event belongs to the visit it fired in, so on the Revenue screen a filter keeps the revenue events whose visit matches, using exactly the definition the visitor count beside them uses. A country filter narrows the money and the visitors together, and revenue per visitor stays a real ratio.
Filters and the API
Section titled “Filters and the API”Every key on this page works as a query parameter on
/api/v1/sites/:id/stats, /series, /breakdown and /events, and on the
CSV export. See the
filter parameter reference.
curl -s -H "Authorization: Bearer tk_live_…" \ "https://tracing.tools/api/v1/sites/pk_live_xxxxxxxx/stats?range=30d&country=DE&device=mobile"