Fixing Meta Ads Attribution: GA4, CAPI and the Numbers You Can Trust
An account can't be optimised faster than it can be measured. Here is the reconciliation test we run before touching any campaign.
We covered the diagnostic order for a Meta Ads account that's stopped converting in an earlier article, and tracking was check #1 for a reason: it's the most common root cause and the least glamorous fix. This is the deeper version of that check, specifically for accounts where the numbers themselves can't be trusted yet.
Why attribution breaks in the first place
Two failure modes cause almost every trust problem we see. Double-counted purchases: browser pixel and server-side CAPI both fire for the same event with no shared deduplication key, so the account reports two purchases for every one that actually happened. Silent platform drift: iOS privacy changes, ad blockers, and cookie consent banners all quietly reduce what the browser pixel can see, while CAPI, if it's even installed, was never reconciled against it.
Neither failure mode announces itself. The account just slowly starts rewarding whichever campaigns happen to over-report, and starves the ones that don't.
The 3% reconciliation test
This is the first thing we run on any new account, before any campaign changes: pull last week's purchase count from Meta Events Manager and compare it against the actual order count in Shopify (or whatever system processes the sale) for the same window.
On the skincare brand account, this exact test surfaced a CAPI setup that had been double-counting purchases for five months. The account thought it was closer to breakeven than it actually was, which is a worse failure mode than under-reporting: it makes scaling decisions look safe when they aren't.
Server-side CAPI vs browser pixel
The browser pixel fires from the visitor's device and browser, which means it's subject to ad blockers, cookie consent decisions, and platform privacy restrictions, all of which have only gotten stricter. Server-side Conversions API (CAPI) fires from your own server, which sees the transaction directly and isn't affected by any of that.
Running both is standard practice, and correct, but only if they're deduplicated against each other. Running both without dedup is exactly how double-counting happens.
Event Match Quality: the number that tells you if CAPI is actually working
Installing CAPI isn't the same as CAPI working well. Meta scores every account on Event Match Quality (EMQ), visible in Events Manager, which measures how confidently it can match your server-side events to a real Facebook or Instagram user. This is the number that actually tells you whether the implementation is doing its job, not just whether it's technically live.
This matters because EMQ has a direct line to attribution quality: a low-EMQ CAPI setup still loses matchable conversions, it just loses fewer than pixel-only. Checking EMQ takes thirty seconds in Events Manager and tells you more about whether tracking is trustworthy than any dashboard reconciliation alone.
Reconciliation checklist
Deduplication, the part everyone skips
Meta's own documentation covers event deduplication, but it's the step most in-house setups miss, because it only matters once you're running both pixel and CAPI, and by the time a team adds CAPI (usually in response to declining match rates), the original pixel implementation is often forgotten context nobody revisits.
Putting it together
Fixing this isn't a single afternoon of work, but it also isn't a rebuild. The skincare brand account had server-side CAPI rebuilt, purchase dedup fixed, and GA4 reconciled to Shopify within 3%, all in week one, before a single new creative shipped. Only after that did creative testing and structural consolidation start, because there was finally a real number to optimise against.
Not sure your numbers are real?
We run the reconciliation test on your account before touching a single campaign. If it passes, we say so.
Once tracking is trustworthy, the next question is usually whether the account has enough room to scale efficiently, which is really a CAC question. We cover that in the four levers that actually move CAC. Separately, if your reported numbers moved on their own sometime after January 2026, that's likely a platform change rather than a tracking problem: see what changed in Meta Ads attribution in 2026.