Clarvivo

Clarvivo blog

Meta Ads purchases not matching Shopify orders? What's normal and what's broken

Meta and Shopify rarely agree on purchases. Why Meta reports more or fewer orders than your store, how attribution and deduplication cause it, and how to check.

The Clarvivo team4 min read
  • meta ads
  • shopify
  • conversions api
  • attribution

Meta Ads Manager says your campaigns drove 140 purchases last week. Shopify shows 95 orders in total, from every channel. Or the opposite: Shopify had a strong week and Meta reports a handful of purchases.

Both happen constantly, and both can be either normal or a sign of broken tracking. The difference comes down to what Meta is counting: Meta reports purchases it attributes to its ads, under its attribution settings, from the events your Pixel and Conversions API send. That's a claim, not a count of your orders.

Why Meta reports more purchases than Shopify

View-through attribution

By default, Meta credits a purchase to an ad if the buyer clicked an ad within 7 days or viewed one within 1 day. Someone who scrolled past your ad and later bought through Google, email or a direct visit is counted as a Meta purchase. If Google Ads also claims the same order, the two platforms together report more purchases than you had.

To see the difference, compare the same report with the attribution setting at 7-day click only. The gap between the two is the view-through share.

Duplicate Purchase events

The most common real bug. A Shopify app and a manually added pixel both send Purchase. Or the Pixel and the Conversions API both send the purchase without a shared event_id, so Meta can't tell they're the same order. Or the thank-you page fires Purchase again when it's refreshed.

The Meta Pixel + CAPI Dedup Checker checks whether your browser Purchase carries an event_id that a server event can match. The Meta Event Parameter Validator checks value, currency and event ID on purchase-like events.

Modelled conversions

Meta also reports modelled conversions for activity it can't observe directly. These are estimates, so they won't line up with individual orders.

Why Meta reports fewer purchases than Shopify

Not every order comes from Meta

Most stores sell through several channels. Meta should report only the share it can attribute to its ads.

Consent, ad blockers and iOS

Browsers and devices that block the Pixel, and visitors who decline tracking, reduce what Meta can see. The Conversions API recovers some of it by sending events from your server.

Purchase missing on some checkout paths

Express checkouts and some payment methods can complete without firing the browser Purchase. If you rely on the Pixel alone, those orders are invisible to Meta. Check your confirmation page with the Meta Pixel Checker and test each payment method.

Normal vs broken: a quick test

Pattern Likely meaning
Meta lower than Shopify, stable over time Normal: Meta only claims a share, and some events are lost
Meta lower than Shopify, suddenly much lower A Pixel or CAPI break, often after a theme, app or checkout change
Meta higher than Shopify with default attribution, lower with 7-day click View-through attribution claiming other channels' orders
Meta higher than Shopify even with 7-day click only Duplicate Purchase events
Meta and Shopify counts identical every day Suspicious: check that orders aren't being imported or duplicated into reporting

The Shopify vs Meta Purchase Gap Analyzer compares the two exports over the same dates and classifies the gap into these patterns.

Don't add Meta and Google Ads together

Each platform claims every order it can attribute under its own rules. Adding Meta's purchases to Google Ads' conversions double-counts every customer who touched both. The Claimed Revenue Overlap Checker compares combined platform claims with your store's actual orders and revenue.

How to reconcile Meta with Shopify

  1. Export both for the same dates. Use Shopify paid orders and Meta purchases with purchase value.
  2. Run the comparison with default attribution and with 7-day click only.
  3. If Meta is higher on 7-day click, look for duplicate Purchase events and missing event_id.
  4. If Meta dropped suddenly, check the Pixel on the confirmation page and the Conversions API status in Events Manager.
  5. If value doesn't match, check whether purchase value includes tax and shipping, and whether it's sent in the store currency.

Which number should drive budget?

Neither platform's own report. Use your store as the record of what happened, and an attribution model applied consistently across channels to decide what caused it. That's how Clarvivo works: revenue comes from your payment provider, and channels are credited from one consistent view of each customer's journey, not from each ad platform marking its own homework.

FAQ

Why does Meta show more purchases than Shopify? View-through attribution, duplicate Purchase events (Pixel plus CAPI without a shared event_id, or two apps), and modelled conversions.

Why does Meta show fewer purchases than Shopify? Meta only reports purchases it can attribute to its ads, and consent, ad blockers and checkout paths that skip the Pixel all reduce what it sees.

How do I stop Meta double counting purchases? Send the same event_id with the browser Purchase and the matching Conversions API event, and remove duplicate pixel installations.

Should I compare with 7-day click attribution? Yes. It removes view-through claims and gives a more conservative figure to compare against your store.