Low event match quality, purchases counted twice, Events Manager showing numbers that make no sense. I set up the pixel and CAPI together so Meta receives one clean purchase per order with the data it needs to optimise.
Events Manager shows a purchase count that is nowhere near your orders. Match quality sits at 4 or 5 out of 10. Ad sets optimise on events that are half missing or doubled.
Shopify’s native Meta integration is on, a pixel is also in GTM, and a CAPI connector was added last year by someone who has since left. All three send purchases and none of them share an event ID.
›
Browser pixel and Conversions API both send the purchase but with different or missing event IDs, so Meta cannot deduplicate and counts both.
›
Customer parameters like email, phone and external ID are not sent or not hashed, which keeps match quality low.
›
Native platform integrations and manual pixels running at the same time.
›
Events fired on the wrong page or without the value and currency Meta needs for value optimisation.
01
Map every Meta event currently firing, from browser and server, and find where the duplicates and the missing parameters come from.
02
Decide on one setup. For most Shopify stores that is the native integration configured properly, or a clean GTM pixel plus server-side CAPI through Stape, not both.
03
Send the same event ID from browser and server so Meta deduplicates correctly.
04
Pass hashed email, phone, name, city and external ID with every purchase to lift event match quality into the 8 to 10 range.
05
Verify in Events Manager’s test events and the deduplication report, then compare purchase counts against the store for a full week.
Pixel and CAPI sending one deduplicated purchase per order, event match quality visibly improved in Events Manager, all standard events firing with value and currency, and a document of what fires where.
Any brand running Meta ads where Events Manager numbers don’t match the store, and agencies managing Meta spend for clients with inherited setups.
If you are on Shopify with a standard checkout and no other pixels, the native integration configured correctly is fine. If you need custom events, run GTM, or sell on another platform, custom pixel plus server-side CAPI gives more control.
With hashed email, phone and external ID on purchases, 8 or above is normal. Without customer data, 5 to 6 is the ceiling no matter what you do.
Almost always deduplication. Two sources are sending the purchase without a shared event ID. Fixing that is usually the single biggest change.
Not strictly. Shopify’s native integration sends CAPI events on its own. But if you want deduplication control, custom parameters, or the same server handling GA4 and Google Ads, server-side GTM through Stape is the cleaner route.
Yes. The two systems can be fixed independently, though if both are broken it is cheaper to fix them in the same pass since the dataLayer work overlaps.
A tracking audit tells you exactly which events are wrong, why, and what it takes to fix them. No pitch deck, just the findings.