Conversion Tracking

GTM, GA4 and Server-Side Tracking

Move collection off the browser and onto a server-side container you control, so Safari's cookie limits and the average ad blocker stop quietly deleting your data.

+22% Average signal recovered from Safari & ad blockers
2–4wk Typical build & QA turnaround
1 Container you own, end to end
The problem

Every browser-side tag is losing a little more data every year

Safari's Intelligent Tracking Prevention caps first-party cookies at seven days. Chrome is phasing out third-party cookies. Ad blockers strip anything that looks like a tracking script by name. A browser-only GTM container was already losing signal three years ago — it's worse now.

A server-side container, run from your own subdomain, sidesteps most of that. It looks like a first-party request because it is one, and you control what leaves it and where.

The fix

What we build

  • Server-side GTM container, deployed on a first-party subdomain
  • GA4 event and ecommerce tracking reconciled against your order data
  • Cookie lifetime extended within what consent and ITP actually allow
  • Client and server tags deduplicated, so nothing counts twice
  • Internal traffic and bot filtering, so the numbers aren't inflated
  • Full documentation of what fires, where, and why
Before & after

What changes once collection moves server-side

Same traffic, same consent rate. The difference is how much of it the container can actually see.

Safari's ITP caps first-party cookies at seven days

A returning visitor past that window looks like a brand-new user, breaking attribution and inflating new-visitor counts.

Browser-side 7-day cap
Server-side Extended within consent

Ad blockers strip anything named like a tracking script

A request to a well-known analytics domain gets blocked by name before it ever leaves the browser.

Browser-side Blocked by name
Server-side First-party request

GA4 ecommerce doesn't reconcile with real orders

Half-built ecommerce events and duplicated purchases leave finance keeping its own spreadsheet instead of trusting the dashboard.

Before Unreconciled
After Matches order table
Process

How the build runs

Map the current setup

Every tag, trigger and variable in the existing container, including what's quietly failing.

Stand up the server container

Deployed on your own subdomain, so requests read as first-party rather than third-party.

Migrate tags and reconcile GA4

Client and server tags moved across with deduplication, then checked against real order data.

QA and hand over

Tested through real journeys, documented, and left in a container you own outright.

What clients say

Don't just take our word for it

Our GA4 was a mess of duplicated events and half-built ecommerce. It now reconciles against our order table close enough that finance stopped keeping a separate spreadsheet.

Amanda Price Operations · Next Evolution of You

A tag manager migration from years ago had never been finished. Every signup had been counting twice, and nobody had noticed because it was consistent. Finding that paid for the whole engagement.

Brian Foster Marketing Lead · Doze Host

The measurement rebuild came before a single campaign changed. It felt slow at the time. In hindsight it is the only reason the decisions since then have been worth anything.

David Ramirez Head of Marketing · Online Pilates Classes
Questions

Common questions

Do we need a developer to set this up?

Someone needs to point a subdomain at the server container, which is usually a five-minute DNS change. Beyond that, we handle the build.

Does server-side tracking cost more to run?

Yes, hosting the container has a small monthly cost, typically far less than the ad spend it stops from being misallocated.

Will this recover data lost to Safari or ad blockers entirely?

Not entirely — consent rules still apply, and a visitor who declines tracking stays untracked. It recovers what current browser limits are losing regardless of consent.

Do we keep our existing GA4 property?

Yes, we rebuild the events and ecommerce inside your existing property rather than starting a new one, so historical reporting stays intact.

Start here

Find out what your account is actually reporting

Send us access and we will come back with a written audit: what is tracked, what is double-counted, what is missing, and what we would change first.

No pitch deck · No lock-in · Findings are yours either way