Open Ads Manager and you'll see one number. Open your store dashboard and you'll see another. On most accounts I audit, the gap isn't 5%. It's closer to double.
248
purchases reported by Meta
131
real orders in the store
+89%
over-reported
Illustrative week, based on a pattern I see again and again in audits.
Show the data
| Meta | Store | |
|---|---|---|
| Mon | 38 | 20 |
| Tue | 41 | 22 |
| Wed | 35 | 19 |
| Thu | 44 | 23 |
| Fri | 39 | 21 |
| Sat | 27 | 14 |
| Sun | 24 | 12 |
Why the numbers don't match
- Attribution windows: Meta credits a sale up to 7 days after a click and 1 day after a view, even if the buyer came back through Google.
- Duplicate events: the browser Pixel and the Conversions API both fire without deduplication, so one order counts twice.
- Wrong trigger: Purchase fires on every reload of the thank-you page, or on cash-on-delivery orders that get cancelled later.
- Modeled conversions: since iOS 14, part of what you see is Meta's estimate, not a tracked event.
Which number should you trust?
Your store's orders are the truth for money. Meta's numbers are a signal for optimization. The mistake is judging campaigns on one and paying bills with the other.
Judge campaigns on blended numbers: total revenue divided by total ad spend. No platform can inflate that one.
A 30-minute fix list
- Check Events Manager for duplicate Purchase events, and send the same event_id from the Pixel and CAPI.
- Make Purchase fire once, on order confirmation, with the real value and currency.
- Compare 7-day-click with 1-day-click results to see how much is view-through.
- Track blended ROAS weekly in a simple sheet, next to platform ROAS.
Once you understand the gap, you can scale with confidence instead of guessing. It's the first thing I check in every audit.