Somewhere between 20% and 40% of your conversions are invisible. Ad blockers eat your pixel, Safari's ITP expires your cookies in 24 hours, iOS strips your click IDs, and consent banners stop tags from firing at all. Your campaigns aren't underperforming — your measurement is.
Browser-side tracking was built for an internet that no longer exists. Server-side tracking is the fix, and after deploying it across dozens of accounts, the recovery rate is remarkably consistent: 25–35% more conversions become visible. Same campaigns, same spend, same customers. The difference is you can finally see them.
What server-side tracking actually is
Traditional setup: the user's browser fires your Google tag directly to Google's servers. Everything depends on code running in a hostile environment — the browser — where blockers, privacy features and flaky connections kill requests.
Server-side setup: the browser sends one lightweight request to your own tagging server (usually a Google Tag Manager server container on Cloud Run), and your server forwards clean, enriched events to Google Ads, GA4, Meta — whoever needs them.
- Requests go to your own subdomain (
track.yoursite.com), so ad blockers don't recognize them as tracking. - Cookies get set server-side as first-party HTTP cookies — Safari lets them live for months instead of hours.
- You control the data before it leaves: strip PII, add margin data, deduplicate.
The exact setup
- 1. Server container. Create a GTM server container, deploy it on Cloud Run (the one-click provisioning is fine; ~$45–120/month for most sites).
- 2. Custom subdomain. Map
track.yourdomain.comto the container. This is the step that defeats blockers — skipping it wastes half the benefit. - 3. Move GA4 through the server. Point your web GA4 tag's transport URL at your subdomain; the server container forwards to Google.
- 4. Google Ads conversions via the server. Conversion tags fire from the server, keyed on the click ID captured at landing.
- 5. Enhanced Conversions. Pass hashed first-party data (email, phone) with conversions. This is how Google matches conversions when cookies are gone — and it composes beautifully with server-side.
- 6. Verify. Compare backend truth (orders, signups) against reported conversions for two weeks. The gap should shrink dramatically; whatever remains is your new known error bar.
The goal isn't 100% measurement — that's gone forever, and fine. The goal is a known, stable error bar instead of a mystery one.
Why this matters more than any bidding trick
Smart Bidding learns from the conversions it can see. Feed it 65% of reality and it bids on a distorted map — overvaluing Chrome desktop users (trackable) and undervaluing iOS users (invisible), regardless of who actually buys.
Recover the missing 30% and three things happen: your true CPA drops overnight (the conversions existed; now they're counted), Smart Bidding gets smarter within weeks, and your attribution model finally has real data to distribute.
Who should bother
If you spend under ~$3K/month, start with Enhanced Conversions only — it's free and covers a lot. Above that, server-side pays for itself fast: at $20K/month spend, a 30% measurement recovery is the equivalent of finding thousands of dollars of "lost" performance for a $100 server bill.
Track first, spend second. It's the least glamorous work in performance marketing, and it's the reason some accounts scale while identical ones plateau.
If iOS specifically is your biggest gap, see the iOS + GA4 tracking fix for the exact Enhanced Conversions and Consent Mode setup.