March 27, 2026· 7 min

Your 3 platforms show 3 different numbers: which one is right, Meta, Google Ads or GA4?

Meta over-reports by 26%, Google Ads by 15-20%, GA4 under-reports by 18-35%. Why the gaps exist and when to worry.

The problem every CMO knows

Monday morning, performance meeting. The screen shows three dashboards:

  • Meta Ads: 142 conversions this weekend, ROAS of 4.2
  • Google Ads: 118 conversions, ROAS of 3.5
  • GA4: 87 conversions, ROAS of 2.6

Your Shopify/PrestaShop/WooCommerce back end shows 104 actual orders. No platform matches reality, or any other platform.

It isn't a bug: the gaps are structural. Until you understand why the numbers diverge, every budget decision rests on data you can't interpret correctly.

Average gaps observed

Cross-platform studies (Northbeam 2025, Triple Whale 2025, Measured 2024) converge on orders of magnitude:

PlatformGap vs. actual back endDirectionMain reason
Meta Ads+20 to +30%Over-reportView-through attribution + modeling
Google Ads+15 to +20%Over-report30-day click window + assisted conversions
GA4-18 to -35%Under-reportLast click, no view-through, consent gaps
TikTok Ads+25 to +40%Over-report7-day click/1-day view window + aggressive modeling

On average, Meta over-reports by 26% compared with the actual back end. Google Ads by 18%. GA4 under-reports by 25%. These gaps are normal, up to a point.

Why the numbers can't be identical

Three structural mechanisms explain the divergence:

1. Attribution windows are different

Each platform attributes a conversion according to its own rules:

SettingMeta AdsGoogle AdsGA4
Click window7 days30 daysCurrent session (default)
View window (view-through)1 dayNo (except YouTube/Display)No
Default modelLast click or viewLast Google clickCross-channel last click
Cross-deviceYes (Facebook login)Yes (Google login)Limited (GA4 User-ID)
Gap modelingYes (missing data estimated)Yes (Consent Mode)Yes (Consent Mode)

A user who sees a Meta ad on Monday, clicks a Google ad on Wednesday and buys on Friday will be counted as one conversion by Meta (1-day view-through: no, but 7-day click if they clicked on Monday), one conversion by Google Ads (30-day click), and one conversion by GA4 (last Google click).

Same transaction, different counts. Neither Meta nor Google is lying: they apply their own rules.

2. iOS 14.5+ widened the gap

Since iOS 14.5 (April 2021), iPhone users can refuse app-to-web tracking. The impact on data:

  • Meta lost 40 to 50% of its iOS conversion signal. The platform compensates with statistical modeling, which inflates the numbers
  • Google is less affected (Search runs on first-party data) but Display/YouTube campaigns suffer from the same problem
  • GA4 depends on browser consent: between cookie refusals and ad blockers, 18 to 35% of conversions are never recorded

On a French e-commerce site where 45% of traffic is iOS mobile, the impact is massive.

3. Structural double counting

Meta and Google can both claim the same conversion. If a user clicks a Meta ad and then a Google ad before buying, both platforms count the sale.

On a €120 basket, Meta shows +€120 of attributed revenue, and so does Google Ads. Total displayed: €240. Actual revenue: €120. Your aggregate ROAS is inflated by 100%.

When gaps become a problem

Gaps of 15-30% between platforms are normal. What isn't normal:

  • Meta shows 0 conversions while Google and GA4 count some: the Meta pixel is probably dead
  • GA4 shows 70% fewer conversions than usual: a consent or tag problem is blocking events
  • Google Ads suddenly doubles its conversion count: a dataLayer bug sends two purchase events per transaction
  • The three platforms diverge by more than 50%: at least one data source is corrupted

That's the difference between an attribution gap (structural, predictable) and a data gap (technical, costly). The first is handled with reporting conventions. The second requires immediate action.

What Korvus does here

Korvus doesn't do attribution and doesn't tell you whether Meta or Google Ads is "right".

It checks that the data feeding each platform is reliable. If the Meta pixel is dead, Meta shows a ROAS of 0 because it no longer receives data, even if the campaigns still convert.

Four situations Korvus detects that skew your platforms' numbers:

SituationImpact on MetaImpact on GoogleImpact on GA4Korvus alert
Dead Meta pixelROAS → 0UnchangedUnchangedpixel_dead
Broken GA4 tagUnchangedUnchangedConversions → 0pixel_dead
Blocked checkoutAll platforms under-reportcheckout_zero
Duplicate purchase eventMeta +100%Google +100%GA4 +100%checkout_zero
Degraded LCPUnattributed bouncesUnattributed bouncesBounces countedperf_drop

A CMO who sees Meta ROAS in free fall needs to know whether it's a real ad performance problem or a broken pixel. The answer changes the decision completely: cut the Meta budget (real problem) or call the developer (broken pixel).

How to manage gaps day to day

  1. Pick a source of truth. Your back end (Shopify, PrestaShop, WooCommerce) is the only reliable source for order count and actual revenue. Measure each platform's gap against it.

  2. Document your normal gaps. Calculate each platform's average gap over a rolling 30 days. Meta at +25%, Google at +18%, GA4 at -22%: those are your baselines. If a gap leaves that range, it's a signal to investigate.

  3. Watch for breaks, not levels. A Meta ROAS that goes from 4.0 to 0.3 in 24 hours is a technical problem. A ROAS of 3.2 instead of 4.0 is a marketing topic.

  4. Check data reliability before every budget decision. Before cutting a channel, check that the pixel works. The most expensive decision is the one based on broken data.

Key points

  • Gaps between Meta, Google Ads and GA4 are structural: they come from attribution windows, cross-device tracking and modeling
  • Meta over-reports by 26%, Google Ads by 15-20%, GA4 under-reports by 18-35%
  • These gaps are normal as long as they stay stable; a sudden break is what signals a technical problem
  • Korvus doesn't do attribution: it checks that the data feeding attribution is reliable
  • Before any budget decision, check that your pixels work: a collapsing ROAS can be a dead pixel, not a failing campaign

Your site is losing money silently.

Korvus detects, quantifies and protects.

Korvus translates every leak into euros, so every fix shows up as protected revenue. Get the checklist of invisible revenue leaks and take stock of where you stand.

Hosted in France. No spam, and you can unsubscribe at any time.

Related articles