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.
id type stored as Meaning entry_subdomainkeyword entry_subdomainSubdomain of the landing page entry_urlkeyword entry_urlFull landing URL including query string entry_pathkeyword entry_pathPath only, for example /pricing entry_path_fullkeyword entry_path_fullPath with the subdomain prefix entry_titlekeyword entry_titleHTML title of the landing page
The last page of the visit.
id type stored as Meaning exit_subdomainkeyword exit_subdomainSubdomain of the last page viewed exit_urlkeyword exit_urlFull URL of the last page exit_pathkeyword exit_pathPath only exit_path_fullkeyword exit_path_fullPath with the subdomain prefix exit_titlekeyword exit_titleHTML title of the last page
id type stored as Meaning referrer_urlkeyword referrer_urlFull URL the visitor came from referrer_domainkeyword referrer_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.
id type stored as Meaning countrykeyword country_nameFull country name regionkeyword region_nameRegion or state name citykeyword city_nameCity name country_codekeyword request_countryISO 3166-1 alpha-2, for example ZA, US continentkeyword request_continentContinent code: AF, EU, NA, … region_codekeyword request_regionRegion or state code city_codekeyword request_cityCity identifier postal_codekeyword request_postal_codePostal or ZIP code timezonekeyword request_timezoneIANA name, for example Africa/Johannesburg languagekeyword request_langAccept-Language value, for example en-ZA
id type stored as Meaning devicekeyword request_deviceClass: mobile, desktop, tablet, tv, unknown device_brandkeyword request_device_brandManufacturer, for example Samsung, Apple device_modelkeyword request_device_modelModel, for example Galaxy A06 oskeyword request_platformOS name: Android, iOS, Windows, Mac os_versionkeyword request_platform_nameOS with version, for example Android 15 screen_widthint screen_widthViewport width in pixels screen_heightint screen_heightViewport height in pixels
id type stored as Meaning browserkeyword request_browser_nameName: Chrome, Safari, Firefox browser_enginekeyword request_browser_engineBlink, WebKit, Geckobrowser_familykeyword request_browser_familyBroad family grouping browser_agentkeyword request_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.
id type stored as Meaning bot_namekeyword request_bot_nameGooglebot, Bingbot, …bot_categorykeyword request_bot_categorysearch, scraper, monitor, …bot_verifiedbool request_bot_verifiedIdentity confirmed by reverse DNS bot_agentkeyword request_bot_agentThe bot’s user-agent string bot_ipkeyword request_bot_ipNot a supported filter target
Set once, on arrival. See Channels & Attribution for how the classification works.
id type stored as Meaning channelkeyword channel_categorydirect, organic_search, organic_social, paid_search, paid_social, email, referralchannel_namekeyword channel_nameSpecific source within the channel: Google, Facebook, Instagram channel_methodkeyword channel_methodWhat decided it: utm, referrer_domain, click_id, custom_rule channel_click_idkeyword channel_click_idWhich click id was present: gclid, fbclid, msclkid, … channel_custom_rulekeyword channel_custom_ruleThe custom rule that matched, if any re_entry_countint re_entry_countTimes the session came back mid-life through a fresh acquisition context (a new ad click, a tagged link)
id type stored as Meaning utm_sourcekeyword utm_sourceutm_mediumkeyword utm_mediumutm_campaignkeyword utm_campaignutm_contentkeyword utm_contentCreative or sub-publisher variant utm_termkeyword utm_termKeyword or secondary code
id type stored as Meaning sourcekeyword source_nameFriendly source name, for example Google, LinkedIn source_idkeyword source_idInternal source record id. Not a supported filter target source_iconkeyword source_favicon_urlCached favicon URL. Not a supported filter target
id type stored as Meaning viewsint viewsPage views in the session time_on_siteint time_on_siteDuration in seconds avg_max_scrollfloat avg_max_scrollAverage of each page’s max scroll depth, 0-100 bouncedbool bouncedSingle page view without engagement last_pagekeyword last_page_nameTitle of the last page viewed entry_tsint entry_tsFirst event, unix seconds. Use period rather than filtering on this last_tsint last_tsMost recent event, unix seconds. Not a supported filter target account_seqint account_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.
id type stored as Meaning page_urlkeyword page_tags.urlURL of a viewed page page_pathkeyword page_tags.pathPath of a viewed page page_countint page_tags.countTimes one page was viewed in the session
Nested: clauses on these fields describe one event. See nested fields .
id type stored as Meaning event_namekeyword event_tags[].nameEvent name as passed to signals('name') event_valuekeyword event_tags[].valueThe event’s value as text event_value_numfloat event_tags[].value_floatThe same value as a number, for comparisons
Nested: URL parameters captured on arrival as {key, value} pairs.
id type stored as Meaning tags_keykeyword tags[].keyParameter name, for example fbclid, ref tags_valuekeyword tags[].valueParameter value
id type stored as Meaning acquisition_tagskeyword acquisition_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.
id type stored as Meaning acquisition_valueint signal_value_amountRecorded value (income) in cents, in its own currency acquisition_currency_codekeyword signal_value_currencyISO 4217 code of that value value_usdint signal_value_amount_usdThe value in USD cents value_sourcekeyword signal_value_sourceshopify, apiacquisition_costint signal_cost_amountThis session’s share of a cost entry, in cents cost_usdint signal_cost_amount_usdThat share in USD cents cost_sourcekeyword signal_cost_sourcemanual, google_ads, meta_ads, apicost_labelkeyword signal_cost_labelCampaign or manual entry name cost_entry_idkeyword signal_cost_entry_idThe cost entry that owns this session’s cost. Lookup field: pass ids
id type stored as Meaning short_link_idkeyword short_link_idThe link that was clicked. Lookup field: pass ids from the short links API short_link_group_idkeyword short_link_group_idThe link’s group. Lookup field short_link_click_idkeyword short_link_click_idThe individual click record
id type stored as Meaning snip_form_idkeyword form_tags.snip_form_idA form the visitor interacted with. Lookup field: pass form ids snip_form_submit_idkeyword form_tags.snip_form_submit_idThe submission record, present once a form was submitted
Type Operators keyword equals (one value or any of an array), contains, starts_with, regex, existsint, float equals, gt, gte, lt, lte, between ([min, max])bool is (true / false)lookup fields equals 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.
Caution
The MCP tools use their own, smaller field vocabulary for filters and breakdown, and some names differ from the ids above: lang instead of language, channel_category instead of channel, source_name instead of source. Their metric names differ too (avg_duration, bounce_rate, views_per_session). When moving a query between REST and MCP, translate the names; do not assume they match.
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.
Note
The MCP server speaks a different window vocabulary: it adds live, last_24h, prev_24h, last_week, prev_week and accepts a literal 2026-07-01..2026-07-31 range. The REST endpoints reject those; express a range as custom.
For POST /v2/property/signals/analytics/graph and /live:
metricLabel Value sessionsSessions count viewsPage views sum views_sessionViews/Session views / sessions bounceBounce rate percent 0-100 durationTime on site average time_on_site, seconds scrollAvg. scroll depth average 0-100
Returned by POST /v2/property/signals/analytics/metrics under period_metrics.summary:
key Label Format Increase is sessionsSessions count good viewsViews count good views_sessionViews/Session ratio good bounceBounce Rate fraction 0-1 bad durationVisit Duration seconds good scrollAvg Scroll Depth percent 0-100 good costCost USD cents bad valueValue USD cents good
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.