servers

What changed since this was hard

You rarely write server code for this anymore. A server-side Google Tag Manager container runs in your own cloud project — Cloud Run is the common choice — receives events from the browser, transforms them, and forwards them to GA4, Google Ads, Meta and the rest. It is configuration work in an interface most analytics people already know, not a backend engineering project. The Measurement Protocol still exists and still has its uses, but for most implementations it is no longer the starting point.

Why teams actually do it

Cookie lifetime. This is the one with the clearest commercial impact. Safari’s Intelligent Tracking Prevention caps cookies set by browser JavaScript at seven days. A returning customer on a three-week consideration cycle looks like a brand new visitor. Cookies set server-side, with a proper HTTP header from your own domain, are not subject to that cap — so your returning-visitor and attribution data stops quietly understating reality.

Ad blockers and network filtering. A meaningful share of your audience blocks requests to known vendor endpoints. Requests to your own domain generally survive. Depending on your audience this ranges from a rounding error to a third of your traffic — and it is systematically biased, because the people blocking trackers are not a random sample of your customers.

Control over what leaves. Server-side, you can inspect and modify every payload before it goes anywhere. Strip personal data that should never have been in the data layer. Withhold data from a vendor when consent was not granted. Enforce one consistent policy in one place, instead of hoping a dozen separate browser tags each behave. It turns a compliance promise into something you can actually verify.

Page performance. Fewer third-party scripts in the browser means less JavaScript to parse and fewer connections to open. The gain is real but usually modest — treat it as a bonus, not the business case.

What it costs you

It is not free. The container runs on infrastructure you pay for. A low-traffic site costs very little; high-volume sites should model this before committing.

It adds a component you now own. When collection breaks at 2am, it is your container, not Google’s. That is the trade: you gained control, and control is another word for responsibility.

And it is not a consent workaround. Server-side tracking changes where data is processed, not whether you were allowed to collect it. Anyone selling it as a way around GDPR or CPRA is selling you a liability. Consent Mode still applies, and since March 2024 Consent Mode v2 has been mandatory for EEA traffic on Google Ads and GA4.

Is it worth it for you?

If you run meaningful paid spend, have a sales cycle longer than a week, or have a privacy team asking questions you cannot currently answer with evidence — yes, and the Safari cookie cap alone probably justifies it.

If you are a low-volume site with short conversion paths and no compliance pressure, a clean client-side implementation is still perfectly respectable. The worst outcome is a half-finished server-side setup running alongside the client-side one it was meant to replace, double-counting everything. We see that more often than you would think.