Skip to Content

Facebook Ads Sales vs Shopify Orders

28 October 2026 by
Facebook Ads Sales vs Shopify Orders

Facebook says you made 312 sales last week. Shopify says 190. Where did the other 122 go, and which number do you trust for your planning? Here's the answer, and it's not the one on your ads dashboard.

Reconcile against Shopify, always

Shopify is closer to reality because it only logs an order when money actually moved and an order was placed. Facebook logs a conversion when someone sees or clicks your ad and buys within the attribution window, even if they were going to buy anyway, even if the order is a different size, even if it gets refunded. Facebook is estimating. Shopify is counting.

Put it another way. Shopify's number has to survive payment processing, inventory, returns, and your account reconciliation. Facebook's number has to survive nothing. Nobody ever had to return a reported conversion.

Your books, your inventory, your bank all reconcile to Shopify. So that's the number you plan spend against, pay yourself from, and run the business on. If your cost per acquisition is calculated from an inflated order count, every downstream decision inherits the error, and it compounds as you scale.

Why Facebook reports more

Three reasons, and they always push in the same direction: toward more sales on Facebook's ledger than your store actually recorded.

View-through attribution. Facebook credits itself for a sale if someone merely saw your ad and bought within a day, with no click. No click, no site visit from the ad, sometimes no visit at all, they typed your URL from memory an hour after the ad crossed their feed. Mine counted, say the books. Multiply that weekly by your impression volume and it inflates the count fast.

Returning customers. If a repeat buyer's purchase happens inside a window where your ad touched them, Facebook books the whole order as an ad sale. It didn't acquire them. They already knew you. On a store with a healthy repeat rate, this alone can put a third of reported "ad sales" into customers who'd have ordered with zero spend.

Modeling and deduplication gaps. Facebook models conversions it can't directly track, and sometimes counts events your store attributes differently, like a checkout started but not completed, or a test order. Modeled conversions are estimates wearing the clothes of real orders, and on privacy-limited traffic the estimate section is growing, so the gap between reported and real widens year over year.

Facebook Ads Sales vs Shopify Orders

What to actually do with the gap

Don't try to force the numbers to match. They never will, and spending an afternoon chasing the difference teaches you nothing. Instead, use the ratio.

If Facebook reports 312 and Shopify shows 190 attributable to ads, your real ad-driven orders are closer to 190, and your true cost per acquisition is spend divided by 190, not by 312. Say you spent Rs.60,000. Facebook says your CPA is Rs.192. Shopify says it's Rs.316. That gap holds two different businesses. One of them can scale profitably at a 2.5x break-even. The other one cannot, and it's the one you're actually running.

Treat the ratio as a health check too. Reported-to-real steady around 1.2 to 1.4 is normal on Meta. When it drifts toward 2, ask what inflated: view-through credit piling up, repeat revenue being absorbed, or modeled conversions running hot. The ratio moving is information about your data quality, and data quality is what the algorithm eats.

If you divide ad spend by Facebook's inflated number, you'll think acquisition is cheap, keep scaling, and run out of cash because the orders were never really there. This is the single most expensive arithmetic mistake in e-commerce, and it's a division problem.

"But Meta's data is what the algorithm runs on. Doesn't that make it the number that matters?"

Half right, and the half matters. Meta's algorithm aims at what it can see, so its internal data drives which ads get delivered. For tuning the account, creative rotations, budget shifts, which ad set earns more spend, work inside Meta's data.

But feeding the algorithm inflated credit makes it aim at ghosts. If it takes credit for repeat buyers it didn't acquire, it learns to spend toward people who resemble your existing customers, and the campaign quietly stops hunting for genuinely new customers. That's why a clean feed, deduplicated events, and a CAPI connection matter, because they shrink the gap and the algorithm aims closer to the customers you actually want.

So the practical split: work on Meta's data, decide on Shopify's. If the two get far apart, the first thing to fix is tracking, not the campaigns.

The monthly rhythm

Keep it boring and consistent:

  1. Pull Facebook's reported purchases and Shopify's real orders for the same period, with refunds assigned correctly.
  2. Work out your real ad-driven order count and real CPA against your break-even.
  3. Track the reported-to-real ratio month over month so you notice when your tracking slips.

Judge the business on Shopify. Judge the ads' optimization on Facebook's data, because that's what the algorithm sees. Just never let the algorithm's accounting become your accounting.

One thing worth adding about the ratio: it isn't stable forever, so watch it monthly. Reported-to-real drifts as Meta changes attribution, as modeling covers more of your traffic, and as your repeat revenue grows. A store that ran at 1.25 two years ago can run at 1.6 today with identical honesty on both sides. The number moving isn't a crisis. Unnoticed, it's worse than a crisis, because your CPAs stop matching the customers your bank is paying for.

I'm Hirdesh Matai, founder of HDM GRO-ads, the science of e-commerce advertising.

Share this post