Analytics core

The GA4 core,
without the identity.

Views, visits, estimated devices, engaged time, bounce — trends over 15 to 92 days, deploy markers, top pages, sources, countries and devices, and a realtime view that refreshes itself. Every number carries its badge: exact, estimated or suppressed. It is the reporting core you expect — derived server-side, with nothing stored on the visitor's device.

Overview

The whole site, on one honest screen.

Views, visits, estimated devices, engaged time (median) and bounce — with 15–92 day trends, deploy markers pinned to the timeline, and top pages, sources, countries and devices one scroll away.

Devices are labeled estimated device-days, not people — NAT collisions undercount, IPv6 churn fragments, and the badge says so. Rows below the k-anonymity floor (n ≥ 5) are suppressed on every screen, including this one.

Realtime

Right now, on your collector.

Active visitors over a 5-minute window, a live page list, live sources and a 30-minute sparkline — auto-refreshing, served by the collector on your own hardware. No sampling lag, no third-party relay: the counts are live because the data never left your server.

Live pages & sources

See which path each active visitor is on and where they came from — refreshes without you asking.

30-minute sparkline

The last half hour at a glance, so a campaign spike or an incident is visible before support tickets say so.

Pages report

Every path, graded on six columns.

Per-path: views, engaged time (median), exit rate, scroll depth, frustration score and per-page CWV p75 — sortable on every column, badge-checked on every number.

PathViewsEngaged (median)ExitScroll depthFrustrationCWV p75
/11,2042:5832%71%0.142.1 s good
/pricing5,4113:2441%64%0.312.6 s needs-imp.
/blog/cookieless-analytics3,9054:0218%83%0.051.9 s good
/checkout/payment1,1011:4755%58%0.522.8 s needs-imp.

Metric-definition tooltips sit on every column header — click any number's badge to see exactly what was measured, how, and whether it is exact, estimated or suppressed.

Acquisition

Where traffic comes from, classified server-side.

Referrer classification, UTM extraction, country and device resolution all happen in the collector — with PII scrubbing on URLs and titles before anything is stored.

Channels · last 28 daysclassified server-side
ChannelViewsShare
direct21,281
search14,015
social6,229
referral5,710
campaign4,671
UTM tables

Full source · medium · campaign tables, extracted server-side from the landing URL — no client-side URL rewriting, no query strings stored raw.

Countries & devices

Country comes from the edge-supplied header, device and browser from the user agent, viewport buckets included — all aggregate, all badge-labeled.

PII scrubbing

Emails become [email], card-length digit runs become [num], API keys become [key] — in URLs and titles, before storage, tested end-to-end.

Engaged time, done honestly

Time that stops when the reader does.

Wall-clock time-on-page is noise. Observer measures active-visible time: Page-Visibility-aware, paused the moment the tab hides, kept alive by 15-second heartbeats and closed out with a final exit beacon. Median plus full distribution on every page — the honest engagement metric, and the denominator behind duration goals.

Paused on hide

A hidden tab is not reading. The heartbeat stops when Page-Visibility says so, and wall-clock drift never poisons the median.

Auto-tracked on top

Outbound links and file downloads are captured automatically — no extra markup — and appear as events on the session timeline.

The reporting core,
minus the surveillance.

Traffic analytics ships in the default tier — every number badged, nothing stored on the visitor's device, no consent banner. Access is granted after an NDA; we deploy together with your DevOps team, on your hardware.