Why Facebook might over report or under report your conversion and the best workaround [2022]


Have you ever scratched your heads trying to understand why Facebook could be so stingy on reporting your actual sales? Think you got 5 hard-earned sales today but Facebook only reports 2?

And how about a time when you don’t spend a thing on a day, or campaigns have been turned off, but you see sales reported to it? Was it a ghost doing that?

This article will investigate it in simple terms, but detailed enough to inform your next action.

The BFCM’ 22 is coming close, don’t have a shot in the dark on a tight Facebook ad budget.

Top 5 reasons for Facebook under-reporting

The Conversion Events fall outside of the Attribution Window

What happens after IOS 14+ is a significant drop in the length of a lookback window where you can trace the sale back to the ad, from 28-day click to 7-day click (if you’re not so sure about this, check out about the change here).

More importantly, Facebook now can only attribute the sales for the day the conversion event happens, not for the day the click happens.

Imagine John your prospect:

  •  Clicked ad on day 1, made it to the product page but abandoned his cart
  • On day 7, he came back and make a purchase

But you’ve waited from day 1 to day 6, no sales pops up. You run out of patience and turn off the campaign.

Day 6 is what I call the death valley. Why?

It makes sense to turn the camp off, you don’t have that much budget to spend without seeing any return anyway. 

On day 7, you filter the campaign for day 1-6, you see nothing. Phew, this even reinforces your confidence in the decision to turn off. But wait, if you filter the campaign for day 7, you see 1 whopping sales, but without ad spend! 

Is this sale even real? Yes it’s real. You see spend = 0 because that’s actually reported on day 1. 

And from day 1 to day 6, no sales happen.

That’s why if you filter for the first week, your ROAS looks like it’s screaming on the top of its lungs.

Another scenario is your sale happens on day 8. Facebook will be completely blind to this because of the 7-day lookback window.


All your money for the campaign goes wasted. That was a campaign that’s potential for scale.

Just because of the wicked reports, you accidentally hurt your good ads.

Facebook Reporting Delays

The main reason is they need more time to process events coming from an IOS opted out device. That’s why there is a 72 hrs delay. 

So if you don’t apply a 3-day lag to your report, expect no real-time reporting to happen.

Facebook can’t match the events to Facebook users, because of missed fbc, fbp or other advanced matching parameters

This is a bit technical. But long story short, Facebook needs signals to understand what events were performed by who.

Two valuable signals, beside advanced matching, are fbp and fbc. Those are the 2 cookies to help Facebook trace the events back to the exact person and ad click.

So, be on the lookout for a pixel tool that actually captures these to pass to Facebook. Without this, Facebook won’t be happy.

Post purchase upsells not configured

You don’t like this, but the reality is some people don’t even make it to the thank you page. The purchase events, ironically, are fired mostly when this page loads.

Solutions? Track the purchase events sooner, like right when they complete the payment (order created). For sure, this is hard to set up but there is some tool that does exactly that for Shopify.

External landing pages

Since these external pages aren’t native to Shopify, chances are the pixel installation tool won’t be able to listen to the external events as well. In this case, you need some developers to help with custom code on those pages.

Top 3 reasons why Facebook over-reporting

Changes to the attribution mechanism

Like I said above, you really can’t control when people buy. But you got a very narrow view of what’s going on (7-day). When the sale happens, its value gets credited to the day it happens, which seems mind-boggling because you spend nothing on that day.

No deduplication

If you’re sending events via both Pixel and Conversion API, you have to give Facebook a way to deduplicate them.

If you don’t, your events will be doubled, inflated, whatever you want to call it.

To deduplicate, both your events need to share 1 same event name and event id. If you don’t know how to do this, you need an app or developer to handle it neatly before your Events Manager becomes a mess.

Events firing twice

This is very relatable as many people unknowingly put 1 same pixel ID into 2 installation tools, hence sending twice as much as what's needed. And there’s no way to deduplicate those events because they came from different apps.

Don’t let your budget and sweat go in vain. You need just a little more accurate data :)

Facebook has around 52,000 data points on each person, but when it comes to figure out who bought your products from the ads, it needs accurate data. The IOS 14 updates already wrangle half of Pixel ability. That’s why you need a server-side backup solution that not only solves data loss, but offers a way to navigate around over, or under reporting as well.

Check out Omega - Multi Facebook Pixels , which helps combine first-party data with campaign, ad set, and ad data to provide you a dashboard with actionable insights. 


Related Articles

About Growth

Innovative tech for eCommerce growth

Contact Info

Head: No. 3, 175/55 Lane, Lac Long Quan St., Nghia Do Ward, Cau Giay District, Hanoi City, Vietnam