First-party website analytics

A small beacon on every marketing page records page views, scroll depth, clicks, form submits, outbound clicks and time on page — no cookies, no third parties, no personal data, and it can never break the page.

What it is

A self-hosted analytics script and a matching ingest endpoint. It generates a random per-tab session id and a random persistent visitor id, classifies the device, captures UTM and click identifiers from the URL, and batches nine event types to the platform. Everything is wrapped in try/catch and the endpoint always answers 204, so nothing about analytics can affect the page or the visitor.

Also called: website analytics · no cookies analytics · traffic tracking · who visits my site

See it
First-party website analytics
Won
56%
Avg cycle
22d
Pipeline
$432k
JanSep
The Website › Pages table: views, visitors, organic entries, scroll ladder, median time, bounce and top events per page. Sample data — no customer information appears here.
How it works
  1. 1A random session id lives in sessionStorage; a random visitor id lives in localStorage. Neither is a cookie and neither is ever joined to an account.
  2. 2Events are queued and flushed in batches of up to 25, using sendBeacon when the page is going away.
  3. 3The endpoint whitelists nine event names, clamps every string length, and inserts what survives.
  4. 4Blocked storage degrades to counting views rather than people, instead of failing.
  5. 5The panel rolls the raw events into traffic, channels, funnel and per-page aggregates.
Why we built it

The design rules are stated at the top of the beacon: "No cookies, no PII, no third parties: a random per-tab session id, page views, scroll depth, outbound clicks, and any element carrying data-evt. Failures are silent — analytics must never break the page." The privacy position is documented in the migration too: it is "exactly the 'first-party usage analytics' the published Privacy Policy §11 permits, and nothing here identifies a person."

The problem
  • Third-party analytics required consent banners and gave little that was actionable.
  • Behaviour data lived in a separate tool from search data.
  • An analytics failure could break a marketing page.
Sound familiar?
What you get
Behaviour data with no cookies and no third party
Sits in the same panel as rankings and keywords
Cannot break a page or slow a visitor down
What's inside
GA4 tag without a rebuild
The Google Analytics measurement id is stored in the platform and fetched by the site at runtime, so changing it never needs a deploy.
The scroll ladder — where readers stop
Four milestones instead of one flag — 25, 50, 75 and 100 per cent — because where someone stopped is the finding, not whether they got near the end.
Visitors versus views
A page that pulled a crowd and a page one person reloaded twenty times look identical until you count people separately from loads — so both are recorded, plus how many were returning.
Where visitors came from
Every session is classified once, from its very first page view, into organic, referral, paid or direct — and organic landings are tracked per page as proof a ranking turned into an arrival.
Saw it, clicked it, submitted
Three counts of unique sessions — saw a page, clicked something, submitted a form — so the drop-off between interest and enquiry is a number rather than an impression.
Where readers go next
For every page: how many sessions landed there, how many left from there, and the five pages readers went to next — the honest test of whether the internal links work.

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →