Recently, while auditing data for a Shopify merchant, we encountered a classic discrepancy: Shopify showed only 6 actual orders, yet Meta Ads Manager reported 10 Purchases. On another day, Shopify recorded 7 orders, while Meta again reported 10. The client's immediate reaction was that Meta's attribution was wildly exaggerated, and the media buyers worried that their ad performance metrics were artificially inflated.
While attribution models naturally cause slight discrepancies between Meta and Shopify, a consistent, significant over-reporting of Purchases usually points to a technical issue: a failure in Meta Pixel and Conversions API (CAPI) deduplication.
How Meta Deduplication Works
Under Shopify’s native Facebook & Instagram app, both the "Enhanced" and "Maximum" data-sharing settings utilize a hybrid approach. They send events to Meta from both the browser side (via Meta Pixel) and the server side (via Conversions API). The "Maximum" setting also leverages Meta's latest advertising technologies. This means a single purchase event is sent to Meta via two distinct pathways.
This dual-pathway setup is standard practice, but it requires both paths to signal to Meta that they are reporting the exact same transaction. Meta relies on two key parameters for deduplication: event_name and event_id.
If a browser-side Pixel event and a server-side CAPI event share the exact same event_id and event_name, Meta will deduplicate and merge them into a single conversion. If these IDs do not match, Meta treats them as two separate Purchases, leading to over-reporting.
4 Steps to Troubleshoot and Fix Deduplication Issues
1. Look Beyond Ads Manager Metrics
Do not rely solely on the total Purchase count in your Ads Manager dashboard. Instead, navigate to Meta Events Manager and compare your actual Shopify orders against three metrics: Browser Purchase, Server Purchase, and Combined Purchase. If the Combined Purchase count is significantly higher than the Server-only count and your actual Shopify orders, your deduplication is failing.
2. Eliminate Conflicting Event Sources
Many Shopify stores suffer from "too many cooks in the kitchen." Merchants often have the official Meta channel active while simultaneously running manual Pixel code in their theme files, Google Tag Manager (GTM), Elevar, Trackify, or other third-party CAPI tools. If multiple systems are sending Purchase events independently, they will generate different event_ids, causing duplicate counts even if they use the same Pixel ID.
3. Check Shopify Customer Events Settings
Shopify allows App Pixels to run in either Optimized or Always On mode. The "Optimized" setting dynamically adjusts data access based on traffic, sales, and store maturity, occasionally pausing browser-side data sharing. "Always On" provides unrestricted data access. If the browser-side event is dynamically paused while the server-side event continues to send, it can disrupt the event-matching and deduplication process.
4. Designate a Single Source of Truth for Event IDs
The most robust solution is not to add more code, but to designate a single system responsible for generating the Purchase event and its corresponding event_id. Whether you use the official Meta integration, GTM Server-Side, or Elevar, only one system should handle the transaction event. Ideally, both the browser and server events for a single order must use a deterministic identifier, such as the Shopify Order ID, as the event_id.
Why Clean Data Matters for Performance Marketing
Data discrepancies between Shopify and Meta are common, but inflated numbers do not mean better performance. For media buyers and growth marketers, a "Purchase" is not just a metric on a report—it is the primary optimization signal for Meta's machine learning algorithm. When deduplication fails, Meta falsely believes it is driving more conversions. This corrupts the system's bidding strategies, budget allocation, and ROAS calculations.
Ensuring a clean, deduplicated data layer is the foundational step. Only with accurate data can your scaling and optimization efforts succeed.