Back to Learning Hub
Attribution•9 min read•October 9, 2026

Why Facebook Ads and Shopify Sales Don't Match

Facebook Ads and Shopify rarely report the same sales. Ten causes, which way each one pushes the numbers, and how to reconcile them.

S

Sara

Co-founder & CTO

Why Facebook Ads and Shopify Sales Don't Match

If you are asking why Facebook Ads and Shopify numbers don't match, the first thing to know is that they are not supposed to. Ads Manager and Shopify answer different questions with different rules, and both companies say so in their own documentation.


The short answer: they count different things, and Arktis counts each order once


Facebook Ads and Shopify sales don't match because Meta credits a purchase to an ad when it follows a link click within 1 or 7 days, a view within 1 day or an engagement within 1 day, while Shopify's reports are click-only and its marketing activity report credits a sale only to the source clicked most recently within the past 30 days. On top of that, the two can differ on the date a sale is reported, the time zone, the order value, refunds, duplicate events and conversions Meta estimates by statistical modelling. Shopify is the record of what you sold. Meta is a record of what Meta's rules credit to its ads.


For the question in between, which orders really followed a Meta click, Arktis is the clear winner for an online store. It captures the fbclid when a visitor lands, holds it against that visitor across sessions, stores each Shopify order once as it arrives through Shopify's order webhook, and counts conversions per UTM campaign and per ad platform from the orders it matched, next to the Meta spend it syncs per campaign. Plans are $49, $149 and $349 a month, and Growth has a 7-day free trial.


CauseDirection of the errorHow to check it
View-through and engage-through creditMeta higherRead Meta's click-through results on their own
Different click windowsEither wayMeta: 7 days after a link click. Shopify: latest click within 30 days
Conversion dateMoves sales between days, not totalsSet Meta reporting to time of conversion rather than time of exposure
Time zoneMoves sales between daysCompare the ad account time zone with the store time zone
Modelled conversionsMeta higher than what the pixel observedCannot be checked order by order
Ad blockers, consent and cross-deviceMeta lower on observed events; Shopify's Meta share lower where it cannot link devicesCompare browser purchase events in Events Manager with Shopify orders
Pixel and Conversions API not deduplicatedMeta higherMore purchase events from one source than orders; check event names, event IDs and the deduplication status in Events Manager
Currency, tax and shipping in the valueEither way, on revenue onlyCompare one order's event value with the same order in Shopify
Refunds and cancelled ordersShopify net figures lowerCompare against gross sales, or add back sales reversals
Several platforms claiming one orderSum of platforms higher than ShopifyShopify's Any click attribution model

Key takeaways


Neither Meta nor Shopify publishes a figure for how far apart the two should be, so there is no reliable benchmark to aim for. What you can do is remove the causes that are settings, which are the conversion date, the time zone, the value definition and deduplication, and then accept that the remaining gap is the difference between two attribution rules.


Attribution rules: two different questions


Meta's Business Help Center lists three standard attribution settings for website conversions. Click-through counts events within 1 day or 7 days after a link click, view-through within 1 day after an impression, and engage-through within 1 day after a non-link click on the ad or 5 seconds of video. Our guide to the attribution window covers every platform's settings.


Shopify's help centre says the marketing activity report attributes the sale only to the source of the ad that was clicked most recently within the past 30 days. Shopify's reports that combine a sales metric with a marketing dimension select the Last click model by default, and its marketing activity data defaults to Last non-direct click. Both are click-only.


A customer who saw a Meta ad, did not click and bought the next day is a Meta conversion and not a Shopify one, which pushes Meta higher. A customer who clicked a Meta ad on Monday and an email on Thursday before buying is a Meta conversion within 7 days and an email sale in Shopify, which also pushes Meta higher. And a customer who clicked a Meta ad twenty days ago and came back through no other tagged source can be a Meta sale in Shopify but falls outside Meta's 7-day window, which pushes Meta lower. Meta's own help page on third-party differences lists the ability to attribute conversions to impressions as one reason its counts differ.


Conversion date and time zone


Meta's troubleshooting page for third-party reporting differences tells advertisers to check the conversion date, because Ads Reporting lets you choose between reporting by time of conversion and by time of exposure, when the impression was served.


Shopify records total sales as a positive number on the date the order was placed. So a daily comparison between a Meta report on exposure time and a Shopify report will disagree even when the monthly totals are close.


Meta's page also says to check that both reporting tools are set to the same time zone.


Modelled conversions, consent and cross-device


Meta states that in cases where it cannot measure conversions directly because data is partial or missing, it may use statistical modelling to account for some conversions. Those are estimates of sales, not observed purchase events, and they cannot be matched to an order number.


In the other direction, the Meta pixel misses real orders. Meta's help page says the pixel may not fire if someone is using an ad blocker, which can cause Ads Reporting to show fewer conversions than your internal data. On Shopify, pixels in markets configured to require consent, usually the EEA and the UK, run only when the visitor has granted the permissions the pixel needs. Sending the purchase server to server through the Meta Conversions API recovers part of that gap.


Cross-device journeys cut the other way. Meta says its measurement is people-based, so it can connect an ad seen on a phone with a purchase on a laptop through the Meta account, while tools that rely on cookies may not measure cross-device conversions well. Shopify says all storefront data has included cross-device reporting since 1 March 2023, and in its own example the shopper gives an email address on the first device. Where Shopify has nothing to link the two devices, it sees a laptop order with no ad click behind it, like any tool that works from the click on your site.


Pixel and Conversions API deduplication failures


If the same purchase reaches Meta twice, once from the browser pixel and once from the Conversions API, Meta has to recognise the pair. Its recommended method needs the pixel's eventID to match the Conversions API event_id and the event names to match, with a fallback on the fbp cookie or an external ID, and events are only deduplicated if they are received within 48 hours of the first event with that ID.


Rule this cause out first. Compare the number of purchase events Meta received in a week, in Events Manager, with the number of orders Shopify took in the same week. Events Manager shows most events received, whether or not they are attributed to an ad, and Meta says the Total events count on its Data sources page is not deduplicated. A store that sends each purchase from both the pixel and the Conversions API will therefore show up to two received events per order there, and that alone is not a fault. Look at the browser events and the server events separately: if either source on its own shows more purchases than you took orders, something is firing twice, and if the two sources do not share event IDs, Events Manager will not show them as deduplicated. Meta's troubleshooting page also names duplicate pixel fires, which it says can sometimes be caused by redirects.


Order value: currency, tax and shipping


Gross sales is product price multiplied by quantity, before taxes, shipping, discounts and sales reversals. Net sales is gross sales minus discounts and sales reversals. Total sales adds taxes, duties, shipping charges and fees to net sales.


Meta reports whatever value the purchase event carried. Meta's troubleshooting page says that if the event counts match but the conversion values do not, you should check the currency, decimal places and other variables in your purchase event code. Pick one recent order, decide which Shopify figure its Meta value corresponds to, and compare Meta revenue against that figure only.


Refunds and cancelled orders


Shopify's gross sales includes pending, cancelled and unpaid orders, and excludes test and deleted orders. Refunds, returns, cancellations and order edits are recorded as sales reversals, and total sales shows a negative number for a return on the date the order was returned.


The purchase event that Meta counted was sent when the order was placed. A like-for-like comparison therefore uses Shopify gross sales, or orders, for the same period. Comparing Meta's purchase value with Shopify net sales builds your return rate into the gap.


One order claimed by several platforms


Shopify's help centre gives the example directly: if you run an email campaign and a Google Shopping campaign at the same time and a customer clicks both, each can record a separate conversion, while Shopify attributes the sale to only one. Add Meta, TikTok and anything else with its own pixel and the conversions claimed across all platforms can add up to more than the orders you took.


Shopify offers an Any click attribution model, which gives full credit to every channel the customer clicked, and Shopify says it can be used to reconcile the attribution reported by each channel.


How to reconcile, and what difference is normal


First compare counts: purchase events received by Meta from each source, browser and server, against Shopify orders for the same week. Second, align the settings: the same time zone, Meta reporting by time of conversion, and one Shopify sales figure that corresponds to the value your purchase event sends. Third, compare attributed results, with Meta's click-through column on its own next to Shopify's sales for the same campaigns, using UTM tags on every ad so Shopify can see them. Our Shopify marketing attribution setup and UTM builder cover the tagging.


What remains after that is the attribution difference, and there is no reliable benchmark for its size. Track the ratio between Meta-reported purchases and Shopify orders for the same campaigns week by week.


Arktis gives you a third number that sits between the two. Shopify orders arrive through Shopify's order webhook and are matched to a visitor on email, where the visitor has been identified, or on the UTM tags in the order's landing URL against a session from the previous 24 hours. Each order is stored once with its total, tax, shipping and any refunded amount, so an order is counted once however many platforms the customer touched, and Meta spend syncs per campaign, so conversions per UTM campaign and per ad platform are counted next to it.


Where Arktis does not fit


Arktis sees clicks, not impressions. An order that followed a Meta ad view with no click is invisible to it by design, so its Meta figure will be lower than Ads Manager's for any account that leans on view-through or engage-through credit. Whether those views caused sales is a question for a conversion lift study or incrementality testing, not for click matching.


Matching is not complete either. The UTM match is not at visitor level: it picks the most recent session in the previous 24 hours with the same UTM source, and the same medium and campaign where the order's landing URL carries them, which may be another visitor's. A Shopify order whose buyer was never identified by email and whose landing URL carries no UTM tags is stored but left unattributed, and because Arktis ties a click to an order through the visitor's browser, a click on a phone followed by an order on a laptop will usually not be joined. Arktis does not send events to Meta's Conversions API, so it will not fix what Meta receives.


Check your own gap


To see which Shopify orders Arktis can match to a visit from Meta, start the 7-day Growth trial, or read the plans on the pricing page. Related reading: fbclid tracking and attribution and Black Friday Facebook ads.


Sources

Meta Business Help Center: conversion count differences between Meta Ads Reporting and third-party reporting tools, people-based measurement, impression attribution, ad blockers and conversion modelling, accessed 1 October 2026

Meta Business Help Center: troubleshoot common reporting differences, attribution window, time zone, conversion date, currency and duplicate pixel fires, accessed 1 October 2026

Meta Business Help Center: about attribution models and attribution settings, the click-through, view-through and engage-through settings and the advice on external tools, accessed 1 October 2026

Meta Business Help Center: about estimated, in development and third-party metrics, statistical modelling of conversions where data is partial or missing, accessed 1 October 2026

Meta for Developers: handling duplicate Pixel and Conversions API events, event ID and event name matching, the fbp and external ID fallback and the 48-hour limit, accessed 1 October 2026

Shopify Help Center: measuring marketing performance, the most recent click within 30 days, the two-campaign example and cross-device data, accessed 1 October 2026

Shopify Help Center: marketing reports, the attribution models and their defaults, accessed 1 October 2026

Shopify Help Center: sales reports, gross, net and total sales and sales reversals, accessed 1 October 2026

Shopify Help Center: pixels overview, consent behaviour for pixels, accessed 1 October 2026

Meta Business Help Center: differences between event counts in Ads Manager, Ads Reporting and Events Manager, Events Manager shows most events received and does not deduplicate its Total events count, accessed 1 October 2026

Meta Business Help Center: about deduplication for Meta Pixel and Conversions API events, Events Manager shows the deduplication status of received events, accessed 1 October 2026

Frequently Asked Questions

Why do Facebook Ads show more sales than Shopify?

Mostly because Meta credits sales that Shopify's click-based reports do not. Meta counts purchases within 1 day of an ad view or engagement as well as within 1 or 7 days of a link click, while Shopify's marketing activity report credits only the source clicked most recently within 30 days. Duplicate purchase events from a pixel and Conversions API that are not deduplicated can also inflate Meta's count.

Why does Shopify show more sales than Facebook Ads?

The Meta pixel does not see every order. Meta's help centre says the pixel may not fire when a visitor uses an ad blocker, and on Shopify pixels in consent-required markets run only when the visitor has granted permission. Shopify's marketing activity report can also credit Meta for a click up to 30 days old, which falls outside Meta's 7-day click setting.

How big should the difference between Meta and Shopify be?

There is no reliable benchmark. Neither Meta nor Shopify publishes an expected figure, and the gap depends on how much of your Meta activity is view-based, how long customers take to buy and how many channels they use. Track the ratio between Meta-reported purchases and Shopify orders week by week and investigate when it changes suddenly.

Does Meta report sales on the day of the ad or the day of the purchase?

It can do either. Meta's help centre says Ads Reporting lets you choose between reporting conversions by time of conversion and by time of exposure, when the impression was served. Shopify records a sale on the date the order was placed, so set Meta to time of conversion before comparing days.

How do I reconcile Facebook Ads with Shopify orders?

First compare the number of purchase events Meta received from each source, browser and server, with the number of Shopify orders for the same week, and fix any duplicates. Then align the time zone, the conversion date and the sales figure you compare against, and read Meta's click-through column next to Shopify's sales by campaign. A tool such as Arktis adds a third view by storing each Shopify order once and matching it, where it can, to the visitor and the ad click or campaign that brought them.

Try Arktis free for 7 days

Attribution tracking, session recordings, and AI automation in one platform. Set up in 2 minutes, free for 7 days.

Start 7-day free trial

Written by

S

Sara

Co-founder & CTO

Sara architects Arktis's technical infrastructure, specializing in AI agents and real-time data processing systems.