Why Is Facebook Under or Over-Reporting Revenue in Ads Manager?

Learn the common reasons why reporting may not be what you expect.

Since Apples iOS changes, Facebook Ads Manager has gone through a substantial overhaul.

The feedback or questions we typically get around Facebook Ads Manager reporting are:

"Why is Facebook over reporting for this date range?"

"Why is Facebook under reporting for this date range?"

So here are a few reasons:

  1. Why you might see over/under reporting that are expected based on your date range analysis
  2. Why you might have a legitimate tracking issue causing an over or under reporting

Why Facebook Might Under Report

1: Attribution Window Differences

Prior to iOS changes, when a user on iOS devices:

  • A user viewed/clicked an ad on Sunday
  • Purchased on Wednesday

The conversion value would be attributed back to the day of engagement -- Sunday.

Post iOS, here's how this same scenario works for a user that is opted-out:

  • A user viewed/clicked an ad on Sunday
  • The user purchased on Wednesday

The conversion value is attributed to Wednesday, not Sunday.

These visuals from Common Thread Collective help illustrate the differences of pre-iOS:

Compared to post iOS:

So if enough users don't buy until 3+ days after engaging, then one logical action from this delayed reporting is that the campaign is ended due to low ROAS.

2: Smaller Attribution Window & Reporting Delays

This is probably the single biggest question we get from customers:

"I can see that Elevar captured the FB clickid and utm parameters on my order notes for 10 orders yesterday, but Facebook is only showing 3 conversions. What's broken?"

One driver of this is that Facebook asks you to wait 72 hours to get a more accurate picture of performance. So even if tracking is 100% accurate, you aren't likely to see a completely accurate picture the day of or day after a conversion happens.

There is also the change that Facebook no longer supports 30 day conversion windows that previously could change your month's reporting if you have lengthier buying cycles.

3: Recent events UI does not show events from iOS

This is more of an FYI -- but if testing and you look at the Recent Activities report in Events Manager then you won't see events from opted-out users.

4: Missing fbc or advanced user matching params

For your purchase events, you should have email, fbp, external id, ip address, user agent, and a small % of fbc. Also if you collect phone numbers you'll want that as well.

If you are missing a large % of these events then this will limit Facebook's ability to match back.

5: Post purchase upsells not set up and only firing on final thank you page

If you are using a post-purchase app like Zipify, Carthook, or others that require a user to view a post-purchase upsell then it's possible you could be missing the first purchase event if you don't have upsell tracking configured for your GTM setup. Follow these guides for upsell configuration"

6: Offsite checkouts

Similar to the above, if you are using an offsite checkout and are not sending these conversions to Facebook then you'll be missing this in your attribution reporting.

7: Facebook's Disclaimer that purchases may not include opt-ed out people

This is an FYI that Facebook displays inside of Ads Manager -- but they do state that it's possible they won't display conversions from iOS opt-ed out users.

Why Facebook Might Over Report

1: Attribution Window

See # 1 for reasons why Facebook may under-report to learn why days might over-report as well.

Using that scenario from above:

  • User clicks ad on Sunday
  • You end all FB campaigns on Wednesday
  • User purchases on Friday

Facebook may display conversion value on Friday when no campaigns are active.

2: Purchases Not Deduplicating / Duplicate Purchase Events

Check your Purchase Event > Event Deduplication to see if your pixel and browser events are deduplicating:

If not then you may be duplicating conversions.

This can happen when:

  1. You have multiple setups (native Shopify <> FB integration AND Elevar)
  2. You don't have event id deduplication configured properly for your pixel and server events
  3. Purchases from different apps aren't using the same event id keys for deduplication
  4. You have two pixels running in parallel with both attaching purchase events and/or not configured to only send specific events to each pixel ID

3: SPAM traffic with browser events firing on non thank-you pages

We've started to see this more where malicious users are sending fake events to your browser pixel. You'll typically see this with purchases showing up on non-standard thank you pages or with values that don't match anything you sell or even the same events for same value persisting for every event.

Unfortunately when it comes to client side (i.e. browser pixel) tracking, anyone can in theory send data to your pixel.

4: Offline conversion events API

If you connected Shopify via Zapier to send purchase events to the Offline Conversions API and also have this attached to your Ad Sets then this will lead to duplicate purchase events.