Server-side vs client-side tracking: what actually changed
For years, conversion tracking meant one thing: a pixel in the browser. Meta's Pixel, Google's gtag, TikTok's pixel. The visitor's browser ran a script, the script fired a request to the ad platform, the platform counted the conversion. Simple, and increasingly broken.
Why the browser stopped being reliable
Three things happened at once. Ad blockers now run on a fifth to a third of visits, and they stop tracking scripts by name. Apple's iOS privacy changes cap how long cookies set by JavaScript survive, so a visitor who buys two weeks after clicking an ad looks like fresh organic traffic. And people leave pages fast, often before a pixel finishes loading.
The result: your browser pixel undercounts. Not by a rounding error, by a fifth or more. And because ad platforms optimize toward the conversions they can see, missing data quietly makes your campaigns worse, not just your reports.
What server-side tracking does differently
Server-side tracking sends the conversion from a server instead of the browser. The request goes machine-to-machine, straight to Meta's Conversions API or TikTok's Events API, with no script for an ad blocker to stop and no browser cookie to expire. It carries hashed customer details (email, phone) that raise the platform's ability to match the conversion to a real person.
The catch: if you run both the browser pixel and the server event for the same purchase, the platform could count it twice. That is what the event_id solves. Both halves send the same unique id, and the platform collapses the pair into one conversion. This is why the answer is rarely "switch to server-side" and usually "run both, deduplicated."
When you need both
The browser pixel still does things the server cannot: it builds remarketing audiences and captures on-site behavior. The server event does what the browser cannot: it survives ad blockers and iOS, and it fires for events that never touch a browser at all, like a cash-on-delivery order that is confirmed days later by a courier. Together, deduplicated, they give the ad platform the most complete picture it can get.
The first-party domain upgrade
Even server-side setups can be improved. If the tag and its events load from a subdomain of your own store, rather than a third-party tracking host, ad blockers that filter known tracking domains never see them, and cookies get their full lifetime back. This is the strongest ad-blocker-resistance you can get short of removing the browser entirely.
PixelFox runs the deduplicated browser + server setup for you, with a first-party domain option, one auto-capturing tag and no GTM to configure. Free to start.
Start free