Attribution & tracking · 2026-09-08

Your conversions did not drop. Your tracking did.

Every few months a founder looks at a dashboard, sees conversions falling, and cuts a campaign that was working. The sales were still happening. The pixel just stopped seeing them. This is the most expensive confusion in modern marketing, and it is fixable with plumbing, not with more spend.

Why the browser stopped telling the truth

The classic setup fires everything from the visitor’s browser: the Meta pixel, the Google tag, the analytics snippet. That worked while browsers cooperated. They no longer do. Safari caps cookie lifetimes, ad blockers strip tags for a meaningful share of visitors, and iOS privacy prompts removed identifiers the pixels relied on. The result is systematic undercounting that gets worse exactly where your buyers are: affluent audiences run more ad blockers and more Apple devices.

The platforms then optimise on the partial picture. Meta cannot bid toward conversions it never saw. So the damage is not just reporting: the algorithm itself learns from censored data, and your cost per result quietly climbs.

What server-side actually changes

Server-side tracking moves the reporting from the visitor’s browser to a server you control. The browser sends one event to your own domain; your server forwards it to Meta, Google and anywhere else, enriched and deduplicated. Ad blockers do not block your own domain. Safari does not throttle it. The event that used to vanish now arrives.

Three details separate a real implementation from a checkbox. First, deduplication: when both the pixel and the server report the same purchase, they must share an event id, or you have double counting instead of undercounting. Second, consent: Consent Mode has to be wired to an actual consent platform, not merely enabled, or you are choosing between broken data and broken compliance. Third, reconciliation: the numbers the platforms receive must be checked against the source of truth, your payment processor, not against each other.

The systems that refuse to talk

The hardest version of this problem is the business whose sale does not happen on the website at all. The appointment is booked in one tool, the payment lands in another, weeks later, and neither has a usable API. Most agencies stop here. The honest answer is that this is an engineering job: mirror the closed systems into something queryable, match records across them, and feed the result back to the ad platforms as offline conversions.

We did exactly this for a luxury bridal client operating in two countries: 206 of 270 payments matched to the appointments that produced them, across two booking systems with no shared API. Counted, not estimated. Once that number existed, every budget conversation changed, because for the first time the ads could be judged on money instead of on claims.

How to tell which problem you have

A quick self-test. If your platforms together claim more revenue than your bank statement shows, you have double counting. If they claim meaningfully less, you have undercounting. If conversions moved sharply the same week an OS update shipped while sales stayed flat, that was never a marketing problem. And if you cannot run this test at all because the numbers live in five tools, that is the clearest signal of the three.

The floor comes first. Every shekel and dollar of media spend above it inherits whatever the measurement allows. Fix the floor, then argue about creative.

If this reads like a description of your stack, that is the conversation. Twenty minutes, no deck.

Book a callAll posts →