Why do Meta Ads purchases not match Shopify orders?
A practical diagnostic guide for Meta Ads and Shopify purchase mismatches, covering attribution windows, Pixel and CAPI deduplication, consent loss, refunds, and reporting timing.

Quick answer
Meta Ads purchases and Shopify orders rarely match perfectly. The important job is to separate normal attribution differences from broken tracking, duplicated events, consent loss, delayed reporting, refunds, and order-status mismatches.
Quick answer: exact matches are not the goal
Meta Ads purchases and Shopify orders usually will not match one-to-one because they answer different questions. Shopify records store orders. Meta reports purchases it can attribute to ad interactions within its attribution rules, after event matching, consent limits, deduplication, and reporting delays.
The real question is whether the gap is explainable. A stable difference caused by attribution windows is normal. A sudden or widening mismatch can point to broken Pixel events, Conversions API problems, duplicate purchases, checkout changes, consent loss, refund handling, or campaign traffic that Meta is over- or under-crediting.
Start by defining which numbers you are comparing
Before changing campaigns, make sure the comparison is fair. Many tracking investigations go sideways because the team compares a platform-attributed purchase count against a store order report with different dates, statuses, currencies, or refund rules.
Use the same time zone and date range, then decide whether you are comparing order count, gross revenue, net revenue, first-time customer revenue, or attributed purchase value. Those are different metrics, and each can move differently.
- Check whether Meta is using click and view attribution while Shopify is using order creation date.
- Confirm whether cancelled, refunded, subscription, test, draft, or partially paid orders are included in Shopify.
- Compare purchase count separately from purchase value so AOV and product mix do not hide the real issue.
- Use the same currency, reporting time zone, and date boundaries before judging the size of the mismatch.
The tracking issues to check first
If the mismatch changed suddenly, inspect the measurement layer before blaming the media plan. Pixel, Conversions API, and checkout changes can make reported purchases jump or disappear even when store orders are steady.
The highest-priority checks are the ones that affect whether Meta receives one clean purchase event per real order. Duplicate events inflate results. Missing browser or server events deflate them. Poor event matching makes attribution weaker and noisier.
- Pixel and CAPI deduplication: confirm browser and server purchase events share the same event ID so Meta counts one purchase, not two.
- Event firing location: verify the purchase event fires only after the real thank-you or order-confirmation step, not on page refreshes or checkout reloads.
- Event match quality: review whether email, phone, external ID, fbp, fbc, and IP/user agent signals are passing where allowed.
- Consent and privacy changes: check whether CMP updates, browser limits, or regional consent rules reduced browser-side signal volume.
- Checkout or app changes: look for recent Shopify theme, checkout, tag manager, subscription, upsell, or post-purchase app changes that altered events.
When the mismatch is attribution, not broken tracking
Sometimes both systems are working correctly and still disagree. Meta can attribute a purchase to an ad impression or click that happened before the Shopify order, while Shopify simply records the order when it happened. That means reporting can look different across days, channels, and customer journeys.
This is especially common with retargeting, returning customers, longer consideration cycles, and multi-channel journeys where email, organic search, affiliates, and paid social all touch the same buyer. In those cases, the fix is not to force Meta and Shopify to match. The fix is to understand how much credit Meta is taking and whether the revenue is incremental.
How an AdSpecIt-style audit helps diagnose the gap
A useful audit should separate measurement problems from attribution interpretation. It should flag whether purchase events are duplicated or missing, whether CAPI and Pixel are deduplicating correctly, whether the account relies too heavily on view-through or retargeting credit, and whether the reported performance matches store-level revenue trends.
That kind of diagnosis turns the mismatch into a fix list: repair event setup, tighten attribution comparisons, validate new-customer revenue, review retargeting credit, or accept a normal reporting gap instead of changing campaigns for the wrong reason.
Want AdSpecIt to audit your own account?
Connect your Meta Ads account, get a free score, and see the issues most likely to be hurting campaign performance before you spend more.
Get your free audit