Meta ads vs Shopify: why purchases don't match
Meta Ads Manager shows more (or fewer) purchases than Shopify. The six causes, how to measure your own gap, and which number to use for budget calls.
On this page
Ads Manager shows more purchases this week than Shopify credits to Facebook and Instagram. Another week it flips, and Meta shows fewer. Both reports are working as designed. They answer different questions with different data.
This guide lists the six causes, in the order they usually matter, then shows how to measure your own gap and which number to use when you move budget.
Meta and Shopify answer different questions
Meta asks: did a person who clicked or saw one of our ads buy within the attribution window? It credits the ad if so, even if that buyer also came through Google, email and a direct visit before buying.
Shopify asks: which marketing channel brought the visit that led to the order? By default it uses "last non-direct click" (Shopify), so only one channel gets each order, and a buyer who last came from a Google search counts for Google, not Meta.
Neither is wrong. They are measuring different things.
Six reasons the numbers differ
1. View-through and engage-through purchases
Meta's default setting for website conversion campaigns counts purchases within 7 days of a link click, within 1 day of a view, and, since 2026, within 1 day of a non-link interaction such as a like or a comment (Jon Loomer, March 2026). Shopify cannot see an ad view at all. Every view-through purchase in Meta is a purchase Shopify credits elsewhere or to direct.
In Ads Manager, use Compare attribution settings to split the column by click, view and engage-through. That one step often explains most of the gap.
2. Both platforms claim the same sale
A buyer who clicked a Meta ad on Monday and a Google ad on Thursday counts in both ad platforms. Shopify gives the order to one channel. Add every platform's purchases together and the sum will be higher than your order count.
3. Cross-device matching
Meta can match a purchase on a laptop to an ad click on a phone when the buyer is logged in to Facebook or Instagram on both. Shopify sees the laptop session only and credits whatever brought it, often direct or brand search. This pushes Meta's count above Shopify's.
4. Lost click ids and lost pixels
The other direction: Meta counts fewer purchases than really came from its ads.
- The Meta pixel is blocked by an ad blocker or declined in a consent banner, and no server event was sent.
- The buyer opened the ad link in Safari Private Browsing, where Safari strips known click ids such as
fbclid(Apple). - The purchase was more than 7 days after the click, outside the window.
The Conversions API recovers many of these by sending each paid order from a server, with the buyer's hashed email and phone so Meta can match it.
5. Dates and time zones
Meta and Shopify can put the same purchase on different days. Check that the ad account and the store use the same time zone, and compare at least a full week, since a click on Sunday night and a purchase on Monday morning land in different days in different tools. Meta's reporting date rules for website conversions also changed in 2025 (Supermetrics), so compare like with like when you look at older data.
6. Duplicate or missing events
- A purchase event that fires on every load of the thank-you page counts reloads as new purchases.
- A browser event and a server event without a shared
event_idboth count (Meta). - Since August 2026, script tags on Shopify's order status page no longer run for any store (Shopify). A purchase tag still installed there sends nothing. Shopify points tracking to web pixels and the Customer events settings instead.
In Events Manager, the Event deduplication and Event match quality views show whether browser and server events are being merged and matched.
Measure your own gap
- Pick a full 28-day period that ended at least 7 days ago, so late purchases have come in.
- In Ads Manager, read purchases with 7-day click only, no view or engage-through.
- In Shopify, export orders for the same dates with their first and last visit sources.
- Count the orders where any visit came from Meta, with
fbclidon the landing page orutm_source=facebookorinstagram. - Compare: Meta 7-day click against Shopify orders with a Meta touch.
These two numbers should be much closer than the raw totals. Whatever gap is left is your measurement loss plus cross-device matches. Write it down and recheck monthly. A steady gap can be planned around. A sudden jump means something broke.
Which number to use for budget
- For how much you sold, always Shopify.
- For comparing Meta with other channels, use one independent view with one rule for every channel: Shopify's own reports, an analytics tool, or an attribution tool that reads Shopify orders.
- For whether a Meta campaign is getting better, use Meta's numbers as a trend. Meta optimizes delivery on its own count, so its relative changes are meaningful even when its total is higher than Shopify's.
- For total efficiency, divide Shopify revenue by total ad spend: the marketing efficiency ratio. It cannot double count.
Common questions
Why does Meta show more purchases than Shopify?
Usually view-through and engage-through purchases, the same order claimed by other platforms too, and purchases Meta matched across devices. Switch Ads Manager to 7-day click only to see how much of the gap is view-through.
Why does Meta show fewer purchases than Shopify credits to Facebook?
The pixel was blocked or declined, click ids were stripped, or the purchase came after Meta's window. Sending purchases through the Conversions API with hashed customer details recovers part of it.
Which attribution setting should I use in Ads Manager?
For comparing with Shopify, read 7-day click. For optimizing, Meta's own default is reasonable. Changing the setting on an ad set changes what Meta optimizes for, not just how it reports, so test it on one ad set first.
Does Shopify's Facebook channel app fix this?
It installs the pixel and sends server events for you, which closes part of the loss. It cannot make the two tools use the same attribution rule, so the totals will still differ.
Sources
- Shopify: Marketing insights and attribution models, Order status script tags. Checked October 2026.
- Meta: Deduplicate pixel and server events. Checked October 2026.
- Meta attribution settings as of 2026: Jon Loomer. Reporting date change: Supermetrics.
- Apple: Link Tracking Protection.
Spotted something wrong or out of date? Email hello@sporetag.com and we will fix it.