Why it happens
Ads Manager counts only what it ties to your ads. Meta's help says Ads Manager shows events attributed to a person who was shown your ad, after discarding events for duplication, data policies or regulations. Events Manager shows both attributed and unattributed events. A purchase can reach Meta and still not appear as an ad result. So there are two questions: did Meta receive the purchase, and did Meta credit it to an ad.
Ad blockers stop the browser pixel. Shopify's help says ad blockers "can block the web pixel entirely, which prevents its events from being sent to that destination". Your Shopify reports are not affected, because Shopify records the order itself. A purchase sent only from the browser never reaches Meta for those buyers. More traffic in peak weeks means more buyers with blockers.
Safari shortens the cookies that tie a sale to a click. Shopify says Intelligent Tracking Prevention "shortens or limits cookies, which reduces attribution accuracy even though the pixel still runs and sends events". WebKit, the engine behind Safari, says it caps cookies set by JavaScript on a landing page to 24 hours when it detects click IDs added to links, and deletes cookies set by JavaScript after 7 days without a visit. In Q4 many buyers click an ad and come back some days later to buy. Safari and ad blockers hide purchases covers this in detail.
Consent banners meet more new visitors. Shopify says that in markets that require consent, web pixels run only when visitors give the permissions the pixel needs. Peak weeks bring many first-time visitors from ads, and each of them sees your banner. Buyers who decline send nothing to Meta from the browser. See Shopify consent settings and missing purchases.
Checkouts changed this year. Shopify says that since 28 August 2025 the additional scripts box in checkout settings is view-only, and that 26 August 2026 was the deadline for stores on a non-Plus plan to upgrade their Thank you and Order status pages. A purchase pixel that lived in the old additional scripts does not run there. Shopify checkout extensibility and tracking explains the change, and post-purchase upsells missing in Meta and GA4 covers upsell offers added for the sales.
Some orders were never meant to reach Meta. Point of sale sales, draft orders marked as paid and subscription renewals have no online checkout for a pixel to see. Leave them out of your count. Which Shopify orders count in Meta lists them.
Check it yourself
- 1In Shopify, open Orders and export your orders by date, from 27 November to 31 December, and once more for one normal week in October. The file is emailed to you and the store owner.
- 2In the file, keep orders whose Source is web and that have a Paid at date. Count them by the day in Paid at, then add the days into weeks: 27 to 30 November (BFCM), 1 to 6, 7 to 13, 14 to 20 and 21 to 27 December, and 28 to 31 December. Add one normal week from October as your baseline.
- 3In Meta Events Manager, open Data sources, pick the dataset your ads use, and read the Purchase count for each of those weeks its date picker still reaches. Meta's help says the Total events count on this page is not deduplicated, so a purchase sent from both the browser and a server can count twice here.
- 4In Ads Manager, set the same date ranges at account level and read the Purchases column. This is the attributed count.
- 5For each week, divide Meta's purchases by your Shopify orders, once for Ads Manager, and once for Events Manager for the weeks you could read. If your ad account and your store are set to different time zones, the edges of each week shift by a few hours.
- 6Compare each week with your October baseline. A share that holds steady is your normal gap. A week where the share drops is where to look: list what changed on the store that week, such as a theme, an app, a cookie banner or a checkout offer.
- 7If Events Manager shows more purchases than you had orders, that alone is not a fault when both a browser pixel and a server send them. Meta counts purchases twice shows how to tell. For a gap outside the peak weeks, start with Meta shows fewer purchases than Shopify.
What to fix for the January sales: the cause you found in step 6, then a check that the browser purchase and any server purchase carry the same event ID, so Meta can count them once. The Christmas purchase tracking checklist has the steps for a change freeze, and January sales need the same care.
FAQ
Can I send the missing Black Friday purchases to Meta now?
No. Meta's Conversions API takes events up to 7 days old and returns an error for older ones. Q4 purchases that never reached Meta stay out of its reports. Fix the cause so January counts.
What share of my orders should Meta show?
There is no fixed number for every store. Ads Manager usually shows fewer than Shopify, because it counts only purchases it credits to ads. Judge each week against your own normal week, not against a figure from another store.
Can the gap be bigger in December than at Black Friday?
It can, when buyers take longer between click and purchase. Safari can cap the cookie that linked them to the ad at 24 hours, so a buyer who comes back two days later may not be tied to the ad.
Will fixing tracking change my Q4 results in Ads Manager?
No. Past weeks stay as Meta recorded them. A fix changes what Meta receives from then on.
Meta counted more purchases than Shopify in one week. Is that good news?
No, and not always bad news. Events Manager's total counts a purchase sent from the browser and from a server twice. It is a fault when the two copies have no shared event ID. Meta's Conversions API docs say a browser event and a server event can be deduplicated only when their event IDs match.