One of the most common questions we get from clients running ads: “Why does Meta say we got 40 purchases this week, but GA4 only shows 25, and Google Ads shows something else entirely?” The frustrating answer is that all three numbers can be correct at the same timeΒ they’re just measuring different things.
Attribution window: the setting that changes everything
An attribution window is how far back a platform will look to credit a conversion to an ad interaction. Meta’s default is a 7-day click and 1-day view window meaning if someone sees your ad (without clicking) and buys within a day, or clicks your ad and buys within a week, Meta counts it as a conversion from that ad. Google Ads defaults differ by campaign type, and GA4’s data-driven attribution model works differently again, distributing credit across multiple touchpoints rather than giving it all to one.
Why this creates permanently different numbers
Say a customer sees your Instagram ad on Monday but doesn’t click, searches your brand on Google Wednesday and clicks a paid search ad, then completes checkout on Friday after a direct visit. Meta may claim this as a view-through conversion. Google Ads may claim it as a click conversion. GA4, using last-click or data-driven models on its own tracked sessions, may attribute it to “Direct” instead of either paid channel, since the final session before purchase came from typing the URL directly.
All three platforms recorded a real event. None of them is lying. They’re each applying a different rule for deciding which touchpoint “gets credit,” and none of those rules match how the customer actually experienced the journey.
iOS 14.5+ made this worse, not better
Apple’s App Tracking Transparency framework means a significant share of iOS users can’t be tracked across apps at all. Meta increasingly relies on modeled conversions statistical estimates for users it can’t directly observe to fill the gap. This is disclosed in Meta’s reporting but easy to miss, and it means a portion of the numbers you’re seeing aren’t measured, they’re predicted.
How to reconcile the numbers without losing your mind
- Pick one source of truth for revenue reporting β usually your actual order/payment system, not any ad platform. Ad platforms are for optimizing spend, not for accounting.
- Use each platform’s own numbers to optimize that platform, not to cross-check against another. Judge Meta ad performance by Meta’s reported results when making Meta bidding decisions; don’t try to force it to match GA4.
- Set up server-side conversion tracking (Conversions API for Meta, Enhanced Conversions for Google) where possible β this recovers some of the accuracy lost to browser tracking restrictions and iOS changes.
- Look at incrementality, not just attributed conversions, when the budget is large enough to justify it β a geo-holdout or platform-off test tells you what revenue genuinely wouldn’t have happened without that channel, which no attribution model can fully answer on its own.
The real takeaway
Chasing perfectly matching numbers across platforms is chasing something that doesn’t exist by design. The useful question isn’t “why don’t these agree” it’s “is each platform trending in the right direction, and is total business revenue growing.” That reframe alone resolves most of the anxiety around mismatched dashboards.
Leave a Reply