When Meta conversions don't match your sales
Meta reports more conversions than your store shows sales. Here's why the numbers never fully match, and how to judge campaigns on real revenue.
Meta reports more conversions than your store shows sales. Here's why the numbers never fully match, and how to judge campaigns on real revenue.
You open Ads Manager and it says 62 purchases. You open Shopify and count 44 orders. Same day, same tracking, nothing broke overnight. Now you're staring at two numbers that are supposed to describe the same reality, and you have to decide which one to scale on. Most guides tell you your tracking is broken and try to sell you a fix. Usually it isn't broken.
Short answer: Meta and your store count different things, so they will never fully match. Ads Manager includes view-through conversions, modeled estimates, and cross-device purchases your store's referrer tracking can't see. Instead of forcing the numbers to line up, judge campaigns on measured downstream revenue over a weekly window.
The takeaways
Meta counts sales your store has no way to see. Its default attribution window is 7-day click plus 1-day view, per Meta's documentation, so a purchase within a week of a click, or within a day of an unclicked impression, gets attributed to the ad. Your store only knows about visits that arrived with a referrer or UTM tag. View-through purchases and cross-device journeys (phone click, laptop checkout) show up in Meta and vanish in your store's own count. The gap comes from two systems measuring different events. Neither is lying.
Modeled conversions are Meta's statistical estimate of sales it couldn't observe directly. Since Apple's App Tracking Transparency in 2021, a large share of iOS users opt out of tracking, so the pixel simply misses those purchases. Meta fills the hole with inference: it looks at the conversions it can see and models the ones it can't, then blends both into the number you read. That estimate is directionally useful for the algorithm's optimization, but you can't hand it to your accountant. You cannot reconcile a modeled conversion against a specific order, because no specific order was observed. Treat the modeled portion as a smoothed guess and count only what your store actually recorded.
Compare like with like, over a longer window. Three things trip people up. First, the metrics aren't the same object: your store's total sales, its marketing-attributed sales, and Meta's purchase conversion value are three different figures, and stacking the wrong two guarantees a mismatch. Second, time zones drift, so a sale near midnight lands on different days in each tool. Third, daily snapshots are noisy because Meta keeps attributing conversions for a day or two after the click. Line up the time zones, wait two to three days after the period closes, and compare a full week of Meta purchases against a full week of orders in your store. The gap usually shrinks to something stable you can plan around.
Server-side tracking narrows the gap, but it never closes it. A Conversion API setup alongside the pixel recovers sales that browser restrictions and ad blockers would drop, and that is worth doing. What it cannot do is erase view-through attribution, modeled conversions, or cross-device overlap, because those come from attribution rules that no tracking fix reaches. If you chase a perfect match you will burn weeks and still end up with two different numbers. The realistic goal is a gap that is small and consistent, so you can read a rise or fall in Meta's number as a real change rather than noise.
Optimize toward the revenue you can measure end to end. The platform's conversion count is the number the platform grades its own homework with, so it has every incentive to read generously. Your bank and your store's order table do not. When you judge a campaign, anchor on measured downstream revenue: real orders, revenue per customer, and return on ad spend from money that landed. Use Meta's in-platform number for what it's good at, feeding the algorithm and spotting week-over-week direction, and use your own revenue for the decision to scale or cut.
This is the reasoning behind how we score ads inside Adscalr. The composite that ranks a creative weights real ROAS and revenue per install above the platform's self-reported conversion tally, because a number that grades its own work shouldn't decide where your budget goes. If you want the fuller picture of reading numbers you can trust, that thinking runs through our ad intelligence approach.
Two related traps are worth separating from this one. If the clicks pour in but nothing converts at all, that's a traffic-quality problem, covered in high CTR but no conversions. And if a campaign that was working suddenly cratered, walk the performance-drop diagnostic before you blame the counting.
This is the thinking behind Adscalr.
See the product →