Skip to content

Field Catalog

A session is one visit, stored as a flat document plus three lists (pages viewed, events fired, URL tags). This page is the complete list of what you can ask about it. Use the id column in clauses; the stored as column is the key you will see on session documents returned by the sessions feed.

Types: keyword (text, exact-match by default), int, float, bool. Operators per type are listed below.

The first page of the visit.

idtypestored asMeaning
entry_subdomainkeywordentry_subdomainSubdomain of the landing page
entry_urlkeywordentry_urlFull landing URL including query string
entry_pathkeywordentry_pathPath only, for example /pricing
entry_path_fullkeywordentry_path_fullPath with the subdomain prefix
entry_titlekeywordentry_titleHTML title of the landing page

The last page of the visit.

idtypestored asMeaning
exit_subdomainkeywordexit_subdomainSubdomain of the last page viewed
exit_urlkeywordexit_urlFull URL of the last page
exit_pathkeywordexit_pathPath only
exit_path_fullkeywordexit_path_fullPath with the subdomain prefix
exit_titlekeywordexit_titleHTML title of the last page
idtypestored asMeaning
referrer_urlkeywordreferrer_urlFull URL the visitor came from
referrer_domainkeywordreferrer_domainHost of that URL, for example google.com, m.facebook.com

Derived from the request at arrival. The IP itself is hashed and discarded; only these derived values are stored.

idtypestored asMeaning
countrykeywordcountry_nameFull country name
regionkeywordregion_nameRegion or state name
citykeywordcity_nameCity name
country_codekeywordrequest_countryISO 3166-1 alpha-2, for example ZA, US
continentkeywordrequest_continentContinent code: AF, EU, NA, …
region_codekeywordrequest_regionRegion or state code
city_codekeywordrequest_cityCity identifier
postal_codekeywordrequest_postal_codePostal or ZIP code
timezonekeywordrequest_timezoneIANA name, for example Africa/Johannesburg
languagekeywordrequest_langAccept-Language value, for example en-ZA
idtypestored asMeaning
devicekeywordrequest_deviceClass: mobile, desktop, tablet, tv, unknown
device_brandkeywordrequest_device_brandManufacturer, for example Samsung, Apple
device_modelkeywordrequest_device_modelModel, for example Galaxy A06
oskeywordrequest_platformOS name: Android, iOS, Windows, Mac
os_versionkeywordrequest_platform_nameOS with version, for example Android 15
screen_widthintscreen_widthViewport width in pixels
screen_heightintscreen_heightViewport height in pixels
idtypestored asMeaning
browserkeywordrequest_browser_nameName: Chrome, Safari, Firefox
browser_enginekeywordrequest_browser_engineBlink, WebKit, Gecko
browser_familykeywordrequest_browser_familyBroad family grouping
browser_agentkeywordrequest_browserRaw user-agent string. Not a supported filter target

Bot sessions are excluded from the analytics endpoints. These fields describe what was detected on sessions that were classified as bots.

idtypestored asMeaning
bot_namekeywordrequest_bot_nameGooglebot, Bingbot, …
bot_categorykeywordrequest_bot_categorysearch, scraper, monitor, …
bot_verifiedboolrequest_bot_verifiedIdentity confirmed by reverse DNS
bot_agentkeywordrequest_bot_agentThe bot’s user-agent string
bot_ipkeywordrequest_bot_ipNot a supported filter target

Set once, on arrival. See Channels & Attribution for how the classification works.

idtypestored asMeaning
channelkeywordchannel_categorydirect, organic_search, organic_social, paid_search, paid_social, email, referral
channel_namekeywordchannel_nameSpecific source within the channel: Google, Facebook, Instagram
channel_methodkeywordchannel_methodWhat decided it: utm, referrer_domain, click_id, custom_rule
channel_click_idkeywordchannel_click_idWhich click id was present: gclid, fbclid, msclkid, …
channel_custom_rulekeywordchannel_custom_ruleThe custom rule that matched, if any
re_entry_countintre_entry_countTimes the session came back mid-life through a fresh acquisition context (a new ad click, a tagged link)
idtypestored asMeaning
utm_sourcekeywordutm_source
utm_mediumkeywordutm_medium
utm_campaignkeywordutm_campaign
utm_contentkeywordutm_contentCreative or sub-publisher variant
utm_termkeywordutm_termKeyword or secondary code
idtypestored asMeaning
sourcekeywordsource_nameFriendly source name, for example Google, LinkedIn
source_idkeywordsource_idInternal source record id. Not a supported filter target
source_iconkeywordsource_favicon_urlCached favicon URL. Not a supported filter target
idtypestored asMeaning
viewsintviewsPage views in the session
time_on_siteinttime_on_siteDuration in seconds
avg_max_scrollfloatavg_max_scrollAverage of each page’s max scroll depth, 0-100
bouncedboolbouncedSingle page view without engagement
last_pagekeywordlast_page_nameTitle of the last page viewed
entry_tsintentry_tsFirst event, unix seconds. Use period rather than filtering on this
last_tsintlast_tsMost recent event, unix seconds. Not a supported filter target
account_seqintaccount_seqInternal sequence number. Not a supported filter target

Every page viewed in the session, as flat fields. A clause matches if any page in the list matches.

idtypestored asMeaning
page_urlkeywordpage_tags.urlURL of a viewed page
page_pathkeywordpage_tags.pathPath of a viewed page
page_countintpage_tags.countTimes one page was viewed in the session

Nested: clauses on these fields describe one event. See nested fields.

idtypestored asMeaning
event_namekeywordevent_tags[].nameEvent name as passed to signals('name')
event_valuekeywordevent_tags[].valueThe event’s value as text
event_value_numfloatevent_tags[].value_floatThe same value as a number, for comparisons

Nested: URL parameters captured on arrival as {key, value} pairs.

idtypestored asMeaning
tags_keykeywordtags[].keyParameter name, for example fbclid, ref
tags_valuekeywordtags[].valueParameter value
idtypestored asMeaning
acquisition_tagskeywordacquisition_meta.tagsFree-form tags set through signals.acquisition({ tags }) or the session actions API

Cost and value recorded against the session. Amounts are integer cents; the _usd variants are normalised so cross-currency totals add up.

idtypestored asMeaning
acquisition_valueintsignal_value_amountRecorded value (income) in cents, in its own currency
acquisition_currency_codekeywordsignal_value_currencyISO 4217 code of that value
value_usdintsignal_value_amount_usdThe value in USD cents
value_sourcekeywordsignal_value_sourceshopify, api
acquisition_costintsignal_cost_amountThis session’s share of a cost entry, in cents
cost_usdintsignal_cost_amount_usdThat share in USD cents
cost_sourcekeywordsignal_cost_sourcemanual, google_ads, meta_ads, api
cost_labelkeywordsignal_cost_labelCampaign or manual entry name
cost_entry_idkeywordsignal_cost_entry_idThe cost entry that owns this session’s cost. Lookup field: pass ids
idtypestored asMeaning
short_link_idkeywordshort_link_idThe link that was clicked. Lookup field: pass ids from the short links API
short_link_group_idkeywordshort_link_group_idThe link’s group. Lookup field
short_link_click_idkeywordshort_link_click_idThe individual click record
idtypestored asMeaning
snip_form_idkeywordform_tags.snip_form_idA form the visitor interacted with. Lookup field: pass form ids
snip_form_submit_idkeywordform_tags.snip_form_submit_idThe submission record, present once a form was submitted
TypeOperators
keywordequals (one value or any of an array), contains, starts_with, regex, exists
int, floatequals, gt, gte, lt, lte, between ([min, max])
boolis (true / false)
lookup fieldsequals only, with record ids

Fields marked “not a supported filter target” are stored and appear on session documents, but the dashboard does not offer them and they are not part of the filtering contract.

The period field on the analytics endpoints accepts exactly these values. All windows are UTC.

periodWindow
todayThe current hour and the 23 before it
yesterdayThe 24 hours before that
last_7Today and the 6 days before it, whole days
last_28Today and the 27 days before it, whole days
month_to_dateFrom the 1st of the current month
year_to_dateFrom 1 January
last_12_monthsFrom the first day of the month 11 months ago to the end of this month
customdate_from to date_to, inclusive, YYYY-MM-DD

The comparison window used for deltas and compare: true is the same length, immediately before.

For POST /v2/property/signals/analytics/graph and /live:

metricLabelValue
sessionsSessionscount
viewsPage viewssum
views_sessionViews/Sessionviews / sessions
bounceBounce ratepercent 0-100
durationTime on siteaverage time_on_site, seconds
scrollAvg. scroll depthaverage 0-100

Returned by POST /v2/property/signals/analytics/metrics under period_metrics.summary:

keyLabelFormatIncrease is
sessionsSessionscountgood
viewsViewscountgood
views_sessionViews/Sessionratiogood
bounceBounce Ratefraction 0-1bad
durationVisit Durationsecondsgood
scrollAvg Scroll Depthpercent 0-100good
costCostUSD centsbad
valueValueUSD centsgood

The metrics endpoint ranks the top 10 values of these fields, keyed by catalog id: source, channel, referrer_domain, entry_path_full, exit_path_full, country, region, city, timezone, browser, os, device, language.