Skip to content
Docs
Browse Analytics

Page views explore

The Page views explore has one row for every page view. What it covers, what to know when reading it, and every dimension and metric in it.

The Page views explore has one row for every page view on your sites and apps. Each row carries the page and its page type, the visit it belongs to and how that visit arrived, where the visitor was, the device they used, how far they scrolled and how fast the page loaded.

It is the most detailed explore, and the base of several others. Clicks, Swipes, Friction, Checkout, Data layer events and Items share its dimensions, so you can slice their rows the same way.

Good to know

  • Bot traffic, and page views from visitors who did not consent, are left out.
  • A visitor is a device. Unique visitors counts device cookies, which Safari clears after 7 days without a visit, so it reads high on Safari.
  • Sessions are visits: a visit ends after 30 idle minutes and is shared across tabs.
  • Campaign fields come in two kinds. Campaign source and its siblings are read from the page view's own URL, while Session campaign source and Channel carry how the visit arrived onto every page view in it, so group by those to see where visits came from.
  • Event time is the time to chart by. Ingest time, when Kontala received the event, is the one to filter on when a query reads too much data.
  • Data layer events are counted in their own explore, Data layer events.

Used on dashboards

Charts on these dashboards are built on the Page views explore:

  • Overview
  • Engagement: Do they stick?: Engagement and Pages
  • Product and app usage: Usage, Friction and Speed

Dimensions

The Page views explore has 113 dimensions.

Time

DimensionTypeDescription
Event timeTimestampWhen the event happened, by the visitor's device, kept between 30 days before and 24 hours after Kontala received it. The default time axis. Time intervals: Raw, Hour, Day, Week, Month, Quarter, Year, Hour of day (number), Day of the week (index), Day of the week (name).
Ingest timeTimestampWhen Kontala received the event. A filter on it narrows how much data a query reads. Time intervals: Raw, Day, Week, Month.

The visitor

DimensionTypeDescription
Visitor typeStringWhether this device had been seen before today. Bounded by the 400 days Kontala keeps and by the device cookie's life, so it reads a visitor Safari has forgotten as new.
Days since first visitNumberWhole days between this device's first page view and this one: 0 on the day it first came. Group it into bins to compare visitors by tenure. Bounded by the 400 days Kontala keeps and by the device cookie's life, which Safari cuts to 7 days, so long tenures read short.
Is entranceBooleanTrue on the first page view of a visit: the page the visit started on.

The visit

DimensionTypeDescription
Entrance pageStringThe path this visit began on, on every page view of the visit: the page people entered on. Not the Landing page type, which says what kind of page a page is.
Entrance hostnameStringThe hostname this visit began on, for a property that spans more than one website.
Page number in sessionNumberWhere this page view sits in its visit: 1 for the entrance, 2 for the page after it, and so on across every tab of the visit.
Time on page (s)NumberSeconds from this page view to the visit's next one, in whichever tab. Empty on the visit's last page, whose time nothing measures.
Is exitBooleanTrue on the last page view of a visit: the page the visit ended on.
Session page viewsNumberHow many page views this visit had, on every one of its rows: group by it to split visits by depth, never sum it, since each visit repeats it once per page view.
Single-page sessionBooleanWhether this visit had exactly one page view: what Bounces and Bounce rate count.
Session numberNumberWhich visit of this device this is: 1 for its first, 2 for its second, and so on. Bounded by the 400 days Kontala keeps and by the device cookie's life, which Safari cuts to 7 days, so a returning Safari visitor starts again from 1.

Scroll depth

DimensionTypeDescription
Scroll depth (%)NumberHow far down the page the visitor got: the deepest point seen, as a percentage of the page's height, 100 at the bottom. On a click, a swipe or a pushed event, that of the page view it happened in, over the whole view rather than at that moment. Empty where the property does not capture scroll, or the view ended before its first reading.
Scroll depth bandStringScroll depth in five bands: 0-24%, 25-49%, 50-74%, 75-89% and 90-100%, the last meaning the visitor reached the end of the page, or all of it but the footer. Empty where Scroll depth is.

Page speed

DimensionTypeDescription
LCP (ms)NumberLargest Contentful Paint: how long the page took to show its largest text or image, in milliseconds. The document's first view's, and a route's only where Chrome reports soft navigations. Empty where the property does not capture friction or nothing was measured.
LCP ratingStringLargest Contentful Paint rated as web.dev rates it: Good at 2.5 seconds or less, Poor over 4 seconds, Needs improvement between.
INP (ms)NumberInteraction to Next Paint: how long the page took to answer the visitor's slowest clicks, taps and key presses, in milliseconds, as web-vitals measures it. Empty for a view nobody interacted with, and in browsers that cannot measure it.
INP ratingStringInteraction to Next Paint rated as web.dev rates it: Good at 200 milliseconds or less, Poor over 500, Needs improvement between.
CLSNumberCumulative Layout Shift: how much the page's content moved under the visitor without being asked to, a score from 0. Chromium browsers alone measure it.
CLS ratingStringCumulative Layout Shift rated as web.dev rates it: Good at 0.1 or less, Poor over 0.25, Needs improvement between.
FCP (ms)NumberFirst Contentful Paint: how long the page took to show anything at all, in milliseconds.
FCP ratingStringFirst Contentful Paint rated as web.dev rates it: Good at 1.8 seconds or less, Poor over 3 seconds, Needs improvement between.
TTFB (ms)NumberTime to First Byte: how long the server took to start answering the page's request, in milliseconds. A document load's alone.
TTFB ratingStringTime to First Byte rated as web.dev rates it: Good at 800 milliseconds or less, Poor over 1.8 seconds, Needs improvement between.
Speed ratingStringThe worst of the view's LCP, INP and CLS ratings, of those it measured: Good only where each is good, as the Core Web Vitals pass a page.
Load or routeStringPage load for a document's first view, whose LCP, FCP and TTFB are measured; Route change for a single-page app's later view, which measures INP and CLS, and LCP only where Chrome reports soft navigations.
LCP elementStringThe element the page's Largest Contentful Paint was, such as img#hero or h1: what to make faster first.
INP elementStringThe element of the interaction the INP was: what was slowest to answer.

Friction

DimensionTypeDescription
Friction measuredBooleanWhether the view was measured for speed and friction: its property captures friction and the visitor consented. Every friction and speed rate is over measured views.
Quick backBooleanWhether the visitor went back to the page before within 10 seconds of this page view: by a page view, a return from the back/forward cache, or the browser's back button. A page view only.

Page

DimensionTypeDescription
PathStringDecoded and redacted. High-signal segments are replaced with , so the segment count survives and paths still group.
SectionStringThe path's first segment, such as /blog or /products; / for the home page.
SubsectionStringThe path's first two segments, such as /blog/2026. Empty for a path with fewer than two.
Page titleStringThe page's title. On a back or forward navigation the tag waits for the title before capturing, so this is the page arrived at, not the previous one. Empty on a Shopify store's checkout and thank-you pages, which Kontala's Shopify pixel reports without a title: Page type names them.
HostnameStringThe host the page was served from. One visitor can move between subdomains, so use Site, not Hostname, to tell your properties apart.
Site domainStringThe registrable domain of Hostname, so www. and shop. of one site group together. A host with no public suffix, such as localhost or an IP address, reads as itself, and so does an app's, its bundle id or package name.
Query stringStringAllowlisted parameters only.
Navigation typeStringload | pushstate | replacestate | popstate | hashchange. 'load' is a real document load; the rest are client-side route changes. An app's screen reads in the same words, its launch as load and a push, a tab or a link as pushstate, and as resume when a visit starts on the screen on show. Empty on a Shopify store's checkout and thank-you pages, which Kontala's Shopify pixel reports, not the tag.
From URLStringThe previous page in this document, as its scheme, host and path only: the query string and fragment are dropped, and the path is redacted as Path is. Empty on the first page view of a visit, which has no previous page.
Referrer hostStringThe host of the page that linked here, such as news.google.co.uk. Referring domain groups such hosts into one source.
Referring domainStringThe registrable domain (eTLD+1) of the referrer, so www.google.co.uk and news.google.co.uk are one source and m., l. and lm.facebook.com are one source. Null where there is no public suffix to find, which is how localhost and a bare IP read - Referrer host still carries those.

Attribution

DimensionTypeDescription
Campaign sourceStringutm_source from this page view's own URL, verbatim and case-sensitive: Google and google are two values, because that is what the links carry. Null on every page after the landing one - use Session campaign source to attribute a whole visit.
Campaign mediumStringutm_medium from this page view's own URL. Drives Channel, below.
CampaignStringutm_campaign from this page view's own URL. Session campaign groups a visit by the campaign that started it.
Campaign termStringThe paid keyword, where the network writes one. Usually null.
Campaign contentStringThe creative or placement variant, where the link carries one.
Click ID sourceStringWhich click identifier the URL carried: gclid, gbraid and wbraid are Google Ads, dclid is Display & Video 360 or Campaign Manager 360, msclkid is Microsoft Advertising, oppref is OpenAI's, on ChatGPT's ads, and the rest name their ad network, except two that are not on ads alone. srsltid is Merchant Center's, on free product listings and, since August 2024, on organic results, and fbclid is Meta's, on links followed out of Facebook, Instagram and Messenger, organic posts included. So Null is the normal state, and a value does not by itself make a visit paid: Channel says whether it was. A URL carrying two reads its last, because a network adds its id when the link is clicked, so an id before it came with the link. A click id exists only on a row written AFTER the collector started keeping that parameter, unlike the campaign dimensions above.
Has click IDBooleanWhether the URL carried a click identifier. That is not the same as a paid click, because srsltid and fbclid are on unpaid links too: Channel says whether a visit was paid. Splits into two bars and never a third unknown one, the way Signed in does.

Attribution carried across the visit

DimensionTypeDescription
Session campaign sourceStringThe campaign source that started this visit, carried onto every page view in it. This is the dimension to group by for acquisition; Campaign source answers the narrower question of which page view physically carried the parameter.
Session campaign mediumStringThe campaign medium that started this visit, carried onto every page view in it.
Session campaignStringThe campaign that started this visit, carried onto every page view in it.
Session click ID sourceStringThe click identifier the URL that started this visit carried, carried onto every page view in it. Click ID source says which ad network each one is.
Session referring domainStringThe registrable domain that started this visit. Null for a visit that began without a referrer, which is what Direct means.
Session referrer hostStringThe host of the page that started this visit, subdomain and all, where Session referring domain is its registrable domain. Null for a visit that began without a referrer.
Session campaign termStringThe paid keyword of the campaign that started this visit, where the network writes one.
Session campaign contentStringThe creative or placement variant of the campaign that started this visit.
ChannelStringHow this visit arrived, from its first page view: the click id, the campaign medium and the referrer, in that order of trust. Every page view of a visit reads the same channel. Organic Search is a link from the host a search engine serves its results on, such as www.google.co.uk, so a link from Gmail, Google's sign-in or Google's other products reads as any other site's does. A click id says which network, not that the visit was paid: Meta adds fbclid to organic posts and shares as well as ads, so a Meta ad reads Paid Social only when its link carries a paid utm_medium such as cpc or paid_social, and Google's srsltid, on free product listings and organic results, reads Organic Search. Other Campaign is a tagged visit no other rule places, display ads' dclid included. AI Assistants is a visit an AI assistant sent: a link from ChatGPT, Perplexity, Gemini, Copilot, Claude, DeepSeek or Grok, known by its referrer or by ChatGPT's own utm_source=chatgpt.com, its shopping cards included, or any link tagged utm_medium=ai-assistant. An ad shown in an assistant stays paid, a ChatGPT ad by the oppref OpenAI appends to it, which reads Paid Search, and a link an assistant's app opens with no referrer and no tag reads Direct. Direct means no referrer at all, which covers an app and an https-to-http hop rather than only a typed URL. Internal is a visit that began from a page on this same site. Empty for a visit with no page view.

First touch

DimensionTypeDescription
First-touch channelStringThe channel of this device's first visit, read as Channel reads a visit: how the visitor first arrived, whichever visit this is. Empty for a device with no page view.
First-touch sourceStringThe campaign source of this device's first visit.
First-touch mediumStringThe campaign medium of this device's first visit.
First-touch campaignStringThe campaign of this device's first visit.
First-touch referring domainStringThe registrable domain that sent this device's first visit. Null for a first visit without a referrer.

Event

DimensionTypeDescription
Event nameStringWhat the row is: page_view, click, swipe or data_layer_event. A Shopify store's checkout and thank-you pages are page views and its checkout steps clicks, as the collector stores what Kontala's Shopify pixel reports; Event type says what each was sent as.
Event typeStringThe type the event was sent as. On a row of a Shopify checkout, what Kontala's Shopify pixel sent it as: checkout-started, checkout-step or purchase.

Geo

DimensionTypeDescription
CountryStringThe visitor's country as a two-letter code, such as GB, from their IP address. IP Geolocation by DB-IP (https://db-ip.com/), CC-BY 4.0. A dashboard showing this must display that attribution.
Country nameStringThe country's name in English, as the Unicode CLDR gives it, read from Country's code; a code CLDR does not name reads as itself. IP Geolocation by DB-IP (https://db-ip.com/), CC-BY 4.0. A dashboard showing this must display that attribution.
ContinentStringOne of seven continents, read from Country by the UN's regions: North America includes Central America and the Caribbean. Russia is Europe; Turkey, Cyprus, Georgia, Armenia and Azerbaijan are Asia, as the UN files them. IP Geolocation by DB-IP (https://db-ip.com/), CC-BY 4.0. A dashboard showing this must display that attribution.
RegionStringThe visitor's region, such as a state or county, from their IP address. IP Geolocation by DB-IP (https://db-ip.com/), CC-BY 4.0. A dashboard showing this must display that attribution.
CityStringIP Geolocation by DB-IP (https://db-ip.com/), CC-BY 4.0. A dashboard showing this must display that attribution.
Geo sourceStringedge | mmdb. Provenance of the COUNTRY only; the city is always the local database.

Network

DimensionTypeDescription
ISPStringGroup on this, never asn_org: one carrier holds dozens of ASNs under varying spellings.
ASNNumberOrigin AS. Join on this; group on ISP. Null when unresolved - AS0 is reserved, so any value here is real.
Datacenter trafficBooleanWhether the visitor's IP address belongs to a data centre. This traffic is kept on purpose. False means a residential address; empty means it could not be checked.
CellularBooleanWhether the visitor was on a mobile network. True is reliable; false means not recognised as mobile, not a fixed-line connection.

Browser environment

DimensionTypeDescription
LanguageStringThe browser's language as it reports it, such as en-GB. Language code and Language name group its variants.
Language codeStringThe language alone, such as en for en-GB, en-US and en-GB-oxendict alike. Empty where the browser reports no language code.
Language nameStringThe language's name in English, as the Unicode CLDR gives it, read from Language code: English for en-GB, en-US and en alike, Chinese for zh-Hans-CN. A code CLDR does not name reads as itself; empty where the browser reports no language code.
Device classStringBucketed from window width, not from the User-Agent. A narrow desktop window reads as mobile, which is the honest answer for a layout question; Device type answers the hardware one.
Screen resolutionStringThe screen's width x height in CSS pixels, such as 1920x1080. The whole screen, however large the browser window on it.
Viewport sizeStringThe browser window's inner width x height in CSS pixels when the page was viewed: what the page actually had to lay itself out in.
Timezone offset (min)NumberThe device's offset from UTC in minutes, with the sign inverted, as browsers report it: UTC+02:00 is -120. It is an offset, not a named time zone.

The visitor's own clock

DimensionTypeDescription
UTC offsetStringThe visitor's UTC offset when the page was viewed, such as UTC+02:00 or UTC-05:00. UTC+00:00 also covers a page that sent no offset.
Local hour of dayNumberThe hour on the visitor's own clock, 0 to 23, whatever timezone they were in: when people browse. Event time's hour is the same moment in UTC.
Local day of weekStringThe weekday on the visitor's own clock, such as Monday. Sort by Local day of week number to put the days in order.
Local day of week numberNumberThe weekday on the visitor's own clock as a number, 1 for Monday to 7 for Sunday, for putting days in order.

Browser, operating system and device

DimensionTypeDescription
BrowserStringThe browser, from the User-Agent header. A browser built on Chromium that does not name itself there, such as Brave, Arc or a desktop app, reads as Chrome. A page opened inside an app reads as the app where it names itself, such as Instagram or the Google app, and as In-app browser where it does not. An app's own screens, from Kontala's SDK, read as App.
Browser versionStringThe browser and its major version, such as Chrome 131 or Safari 18. Empty for an in-app browser, whose numbers are the app's rather than the browser's, for an app's own screens, whose version is App version's, for DuckDuckGo, whose User-Agent carries no version of its own, and for Other.
Operating systemStringThe operating system, from the User-Agent header; iOS includes iPadOS. There is no version beside it, because browsers freeze theirs: Windows 11 reports Windows 10 and every Mac reports macOS 10.15. An iPad asking for desktop sites, as Safari on iPad does by default, reads as macOS, and many Android tablets read as Linux the same way.
Device typeStringDesktop, mobile, tablet or smart tv, from the User-Agent header, and unknown where it names no platform: the hardware, where Device class is the layout the window's width gives. A tablet asking for desktop sites, as Safari on iPad does by default, reads as desktop.
User agentStringThe User-Agent header verbatim, which Browser, Operating system and Device type are read from. One value per browser build, so it is for looking into what they read as Other rather than for charting.

An app

DimensionTypeDescription
PlatformStringWeb, iOS, Android or App web view: whether the row came from a website, through Kontala's tag or the Events API, from an app on Kontala's SDK, or from a page of a website an app showed in a WebView it attached to Kontala, whose rows are the app's visitor and visit. iOS includes iPadOS.
Shown in appStringThe app whose WebView showed the page, by its id as the app's own rows name it, such as com.example.shop, for a page an app attached to Kontala. Empty for a page in a browser, and on an app's own rows.
App versionStringThe app's version, such as 3.2.0, as the store shows it. Empty on the web.
App buildStringThe app's build number, which tells two builds of one version apart. Empty on the web.
OS versionStringAn app's operating system and its version, such as iOS 18.1 or Android 14, as the device reports it. Empty on the web, whose browsers freeze the version they write.
Device modelStringThe device an app runs on, by its machine identifier, such as iPhone16,1 or Pixel 8. Empty on the web.
SDK versionStringWhat sent an Events API row and its version: Kontala's SDK, kontala-flutter 0.2.0, or a backend's own library. Empty on the tag's rows, whose version is Tag version's.

Data source and quality

DimensionTypeDescription
TenantStringYour organisation, read from the key the event was sent with.
SiteStringThe property the event was sent to, read from the key it was sent with.
Allowed originBooleanWhether the page's origin is one its property allows. False marks a development server, a staging copy or another site carrying the snippet, so filter on true for real traffic. A property that lists no allowed origins allows every one.
OriginStringThe origin the browser said the request came from, such as https://www.example.com or http://localhost:5173: which site, development server included, sent the row. null on a row of Kontala's Shopify pixel, whose sandboxed frame has no origin: Allowed origin reads its page's instead.
TagStringWhat sent the row: page-tracker, the tag, on the site's own pages; shopify-custom-pixel, Kontala's Shopify pixel, on a Shopify store's checkout and thank-you pages; or events-api, the Events API, from an app on Kontala's SDK or a site's own backend, which SDK version names.
Tag versionStringA literal compiled into the bundle, so a stale cached tag misreports itself - which is itself worth being able to see.
Collector versionStringThe version of Kontala's collector that received the event.
Delivery modeStringenvelope | bare for the tag, api for the Events API. MUST be filtered on in any seq-gap query, or bare and api rows, with null seq, collapse into one bogus group.

Signed-in user

DimensionTypeDescription
Signed inBooleanWhether this page view carried a signed-in user's id. False on a public page is normal, not a tracking failure. Organisation is checked on its own, so it can still be set when Signed in is false.
OrganisationStringApplication organisation id. The account-level rollup key: the primary B2B question is which ORGANISATIONS adopt a feature, not which people. Null before sign-in.
Company domainStringThe company a signed-in user's id names when the id is an email address: the registrable domain after its @, so acme.co.uk for jane@eng.acme.co.uk. Empty for an id that is no address and for a mailbox anyone can open, such as gmail.com, from Kontala's list of free providers; a provider not on it reads as a company, and so does a mistyped domain, since a login names what was typed.
Global Privacy ControlBooleanSec-GPC. Legally binding under CCPA and several state laws.
Scrubbed parametersNumberHow many query parameters were removed from the URL, without storing what they were. Not comparable across 22 September 2026: a dozen ad-network click identifiers stopped being removed that day, so the count steps down without any change in traffic.

Page type

DimensionTypeDescription
Page typeStringWhat kind of page the view was: the type the site declared, or Kontala's Shopify pixel for a store's checkout and order confirmation, else what Shopify says a storefront page is (its own page type, or on a store its product, collection and search URLs), else the first of the page type rules confirmed in Kontala to match, else the answer of the page type model where the property lets it answer. Unclassified when none says.
Page type sourceStringWhere Page type came from: Declared by the site, by Kontala's Shopify pixel or by Shopify, the kind of rule that matched - Data layer, Platform, URL, Structured data or Page markers - or Model. None when nothing did.

Metrics

The Page views explore has 64 metrics.

Main metrics

MetricCalculationDescription
Page viewsCountPage views. Bot traffic and page views without consent are already left out, and data layer events are counted in their own explore.
Unique visitorsCount distinctDistinct device cookies. Systematically optimistic on Safari, where ITP clamps script-written cookies to 7 days and a returning visitor churns weekly.
SessionsCount distinctDistinct visits. A visit ends after 30 idle minutes and is shared across tabs, so this is not a count of page loads.
Document loadsCount distinctOne per document instance, so unlike sessions this does separate two tabs.
EntrancesCountVisits that began on the page in question: its page views that were the first of their visit.
Entrance rateRatio (%)The share of page views that began a visit. Grouped by Path, how often a page is where people arrive rather than somewhere they go.
BouncesCountVisits with a single page view. Grouped by a page, the visits that entered there and saw nothing else.
Bounce rateRatio (%)The share of visits with a single page view. Grouped or filtered by a page, the share of the visits that entered on it.
ExitsCountVisits that ended on the page in question: its page views that were the last of their visit.
Exit rateRatio (%)The share of a page's views that were the last of their visit.
Avg. session duration (s)AverageSeconds from a visit's first page view to its last, averaged over visits; a one-page visit counts as 0. Grouped or filtered by a page, the visits that entered on it.
Avg. time on page (s)AverageSeconds from a page view to its visit's next one, averaged over the page views that had a next one: a visit's last page is left out, since nothing measures it.
Avg. scroll depth (%)AverageHow far down their pages visitors got, averaged over the page views that measured it: 100 would be every visitor reaching the bottom. A page view with no reading - scroll capture off, or a view that ended before its first - is left out rather than counted as 0.
Page views with a scroll depthCountPage views that measured how far down their visitor got: what the scroll reach counts are out of. None where the property does not capture scroll.
Reached 25%CountPage views whose visitor saw at least the first quarter of the page, the first screen included.
Reached 50%CountPage views whose visitor saw at least half the page.
Reached 75%CountPage views whose visitor saw at least three quarters of the page.
Reached the endCountPage views whose visitor saw 90% of the page or more: the end, or all of it but the footer, the depth GA4 counts as reaching the end.
Read to the endRatio (%)The share of page views that measured a scroll depth whose visitor reached 90% of the page or more. Empty where the property does not capture scroll.

Page speed

MetricCalculationDescription
LCP, 75th percentile (s)75th percentileLargest Contentful Paint at the 75th percentile, in seconds: three in four measured page views showed their largest text or image at least this fast. Good at 2.5 or less, Poor over 4.
INP, 75th percentile (ms)75th percentileInteraction to Next Paint at the 75th percentile, in milliseconds, over the page views that had an interaction. Good at 200 or less, Poor over 500.
CLS, 75th percentile75th percentileCumulative Layout Shift at the 75th percentile, over the page views a Chromium browser measured. Good at 0.1 or less, Poor over 0.25.
FCP, 75th percentile (s)75th percentileFirst Contentful Paint at the 75th percentile, in seconds. Good at 1.8 or less, Poor over 3.
TTFB, 75th percentile (s)75th percentileTime to First Byte at the 75th percentile, in seconds, over document loads. Good at 0.8 or less, Poor over 1.8.
Page views with an LCPCountPage views that measured their Largest Contentful Paint.
Page views with an INPCountPage views that measured their Interaction to Next Paint: those with an interaction, in a browser that can.
Page views with a CLSCountPage views that measured their Cumulative Layout Shift, which Chromium browsers alone do.
Page views with a TTFBCountPage views that measured their Time to First Byte: document loads.
Page views with a speedCountPage views that measured at least one of LCP, INP and CLS.
Page views rated goodCountPage views whose LCP, INP and CLS, of those they measured, were each good.
Good page viewsRatio (%)The share of page views that measured a speed whose LCP, INP and CLS were each good, of those they measured: the Core Web Vitals' pass rate.
LCP: GoodRatio (%)The share of page views that measured their LCP whose LCP was good.
LCP: Needs improvementRatio (%)The share of page views that measured their LCP whose LCP needed improvement.
LCP: PoorRatio (%)The share of page views that measured their LCP whose LCP was poor.
INP: GoodRatio (%)The share of page views that measured their INP whose INP was good.
INP: Needs improvementRatio (%)The share of page views that measured their INP whose INP needed improvement.
INP: PoorRatio (%)The share of page views that measured their INP whose INP was poor.
CLS: GoodRatio (%)The share of page views that measured their CLS whose CLS was good.
CLS: Needs improvementRatio (%)The share of page views that measured their CLS whose CLS needed improvement.
CLS: PoorRatio (%)The share of page views that measured their CLS whose CLS was poor.

Friction

MetricCalculationDescription
Page views measuredCountPage views the friction plugin measured: on a property that captures friction, with the visitor's consent.
Page views measuredRatio (%)The share of page views measured for speed and friction: how much of the traffic the speed and friction figures speak for.
Page views with a JavaScript errorCountMeasured page views during which the page threw an uncaught error or left a promise's rejection unhandled.
Page views with an errorRatio (%)The share of measured page views with a JavaScript error.
Page views with a rage clickCountMeasured page views in which the visitor clicked three times or more within a second, in one spot.
Page views with a rage clickRatio (%)The share of measured page views with a rage click.
Page views with a dead clickCountMeasured page views in which a click on something that looked clickable got no answer within a second.
Page views with a dead clickRatio (%)The share of measured page views with a dead click.
Quick backsCountMeasured page views the visitor went back from within 10 seconds.
Quick backsRatio (%)The share of measured page views the visitor went back from within 10 seconds: a page that was not what they wanted.

An app's frames

MetricCalculationDescription
Slow frame rateRatio (%)The share of an app's frames that missed the display's budget, which a visitor sees as jank. Out of the frames of the screens measured; empty on the web.
Frozen frame rateRatio (%)The share of an app's frames that took over 700ms, which a visitor sees as the app hanging. Out of the frames of the screens measured; empty on the web.

Engaged time

MetricCalculationDescription
Avg. engaged time (s)AverageSeconds a screen was on show while its app was in the foreground, averaged over the screen views that measured it, the last of a visit included. Empty on the web.
Distinct pagesCount distinctHow many different pages were viewed, each hostname and path once.
New visitorsCount distinctDevices whose first-ever page view was on the day in question. Over a range of days this and Returning visitors overlap, so they do not sum to Unique visitors.
Returning visitorsCount distinctDevices seen on an earlier day than the one in question. A lower bound: Safari's ITP drops the device cookie after 7 days, and a visitor who loses it returns as new.
Signed-in usersCount distinctDistinct application user ids. Unlike unique_visitors this does NOT churn under Safari's ITP - it comes from the application session, not a cookie - so the two diverge and the gap between them is itself informative.
Active organisationsCount distinctDistinct accounts with at least one page view in range.
Pages per sessionRatioPage views per session.
Views per visitorRatioPage views per unique visitor.
Sessions per visitorRatioHow many visits each device made in range. Understated on Safari, where the device cookie lasts 7 days and one returning visitor counts as several.

An app's devices

MetricCalculationDescription
PhonesCount distinctDistinct phones an app ran on, by the platform's own id for the device: IDFV on iOS, Android ID on Android. Fewer than Unique visitors where an app was reinstalled, which makes a new visitor on the same phone. Only rows a visitor consented to carry one.
Ad tracking allowedRatio (%)The share of an app's visitors whose ad tracking was allowed: authorized in iOS's App Tracking Transparency, or not limited on Android. Out of the visitors whose app said either way.
Median clock skew (ms)MedianThe median gap between when Kontala received an event and when the device says it sent it: a data-quality check that device clocks agree with Kontala's closely enough for Event time to be trusted.

Your own fields

When your organisation maps data layer fields in Data Capture, they appear in the Page views explore too: the standard fields under Standard fields and your own under Data layer. Each one can carry the metrics chosen when it was mapped, named after it, such as Order value (total): a total, average, lowest, highest or median for a number, a count of distinct values for text, and a count of true for a true-or-false field. They are left out of the lists above, because every organisation maps its own.

Was this helpful?