The gap between what Meta Ads reports and what your store records has two causes that push in opposite directions. Meta over-attributes because it counts sales within a conversion window of up to 7 days, including purchases from people who only viewed your ad. At the same time, Meta loses real events from iOS ATT, Safari ITP, and ad blockers. The result: an inflated number that still doesn't capture everything.
Force 1: Meta over-attributes because of its conversion window
By default, Meta uses an attribution window of 7 days per click and 1 day per view. If someone sees your ad (without clicking) and buys within 24 hours, Meta claims the conversion. If someone clicks and buys up to 7 days later, Meta claims that too.
Your Tiendanube or Shopify store doesn't do that. It records the order when the buyer reaches checkout and completes the purchase. It doesn't know whether that person saw a Meta ad 4 days ago, came from a Klaviyo email, or just Googled you. Result: Meta adds up the sales it "touches" within its window; your store adds up the ones it processes. Those are two different things.
Conversion windows and how they affect attribution is a topic in itself. The practical point: if Meta says 60 and your store says 40, part of those 20 extra conversions are real sales that Meta is self-attributing even though it didn't generate them alone.
Force 2: Meta loses real conversions from iOS and Safari
At the same time it inflates its number with the attribution window, Meta also loses real events. Three main sources:
- iOS ATT: Since iOS 14.5, Apple asks permission to track across apps. Between 60–75% of users decline. The impact of iOS ATT on Meta Ads can mean 20–30% of events lost in iPhone-heavy audiences.
- Safari ITP: Safari deletes third-party cookies in 7 days. A buyer who clicks Monday and purchases the following Tuesday may be invisible to the pixel if they use Safari.
- Ad blockers: Between 20–30% of desktop users have an adblocker that blocks the pixel before it fires.
The paradox: Meta over-attributes and loses data at the same time. The two effects don't cancel out. In many cases over-attribution wins and Meta shows you more conversions than really happened. But not always — and you can never know which one dominates without an independent tool.
The third problem: Meta counts the sale but not the data that comes with it
This is the one that matters most for campaign performance, and it gets the least attention. When a buyer arrives at your store through an ad, the browser pixel fires a purchase event. But that event can reach Meta without the buyer's email, phone number, name, city, or postal code. Just the click ID and the IP address.
Meta receives the event and counts it in Ads Manager. But it can't identify the person behind the purchase because it doesn't have the data to make the match. Match parameters — email, phone, name, city, postal code — are what let Meta connect the event to a real profile. Without them, the conversion is "orphaned": Meta counts it but learns nothing from it.
This is measured with EMQ (Event Match Quality): the 0–10 score Meta assigns to the quality of data it receives. According to Meta's documentation: "a score (out of 10) that indicates how effective the customer information sent from your server may be at matching event instances to a Meta account". In stores without server-side tracking, typical EMQ is 3–4. With server-side tracking: 7–8.
What you see depending on where you look
| Source | What it counts | Why it differs |
|---|---|---|
| Meta Ads Manager | Attributed conversions: 7-day click / 1-day view | Over-attributes via window; also loses iOS and Safari events |
| Tiendanube / Shopify | Completed orders, no channel attribution | Source of truth for sales; doesn't know the acquisition channel |
| Google Analytics | Sessions and conversions by last click (default) | Different attribution model; may under-credit Meta |
| Escalafy | Real profit per sale, crossing Meta + store + actual costs | Shows Real ROAS after all costs |
How do you reconcile the numbers to make real decisions?
Rule of thumb: use your store as the reference for actual sales and use Meta as a directional reference (which audiences and creatives perform better). Meta's conversion count will never match your store's. That's fine. What you need is for both to move up and down together.
For budget and scaling decisions, the number that matters is Real ROAS or Blended ROAS: ad spend divided by real profit (not gross revenue). That calculation includes all costs and needs to be above 1 for the investment to make sense.
For the low-EMQ problem: the fix is sending more match data with each event. Meta's Conversions API lets you send the buyer's email, phone, name, and address from the server, where the browser pixel can't reach. With that, EMQ goes up and lookalikes improve.
What low EMQ does to your algorithm: Meta can't identify who bought. It can't build lookalikes from those buyers because it doesn't know who they are. The direct result: your similar audiences are built from incomplete data, CPA rises, and Meta seems to "perform worse and worse" — when the real problem is the quality of the data you're sending it. Escalafy's server-side Pixel sends email, phone, name, city, and postal code with every event.
FAQs about Meta Ads vs store discrepancies
Is it normal for Meta to show more conversions than my store?
Yes, it's the norm. The typical difference is 20–50% more in Meta than in the store, depending on the attribution model and your audience's device mix. If the gap exceeds that range, check the attribution window configured in your Meta account.
How do I know if Meta is over-attributing too much?
Switch the attribution window to "1-day click, no view" and compare the number against your store's orders for the same period. If the gap is still large, the issue isn't just the window — you may have duplicate events or pixel misfiring on the wrong pages.
What is EMQ and how does it affect my campaigns?
EMQ (Event Match Quality) is the 0–10 score Meta gives to the quality of your event data. Low EMQ means Meta receives the purchase event but can't identify the person. It can't build precise lookalikes, it can't optimize the algorithm toward real buyers. The direct result: higher CPA.
Does the Conversions API eliminate discrepancies?
CAPI improves data quality and reduces events lost to iOS and Safari, but it doesn't eliminate the attribution discrepancy. Meta will still attribute by its conversion window. What it does fix is that the events Meta receives are more complete and match real profiles better.
Which number do I use — Meta's or my store's?
For knowing how much you sold: your store. For understanding which ads perform better: Meta (as a relative reference, not an absolute one). For knowing whether Meta Ads is profitable: calculate Real ROAS by dividing net profit by total ad spend, with all costs included.
Improve your data quality and campaign performance
Escalafy's server-side Pixel sends email, phone, name, and address for every buyer to Meta. Your EMQ goes from 3–4 to 7–8. Better lookalikes, better algorithm, lower CPA. And the profitability dashboard shows you Real ROAS after all costs.
See how the Pixel worksKeep reading
What Escalafy does for your store
Connect your channels and see the truth behind your numbers. No Excel, in real time.
