Why Facebook Ads and GA4 Never Match
Meta says 90 conversions, GA4 says 34. Neither is lying. Here's why the numbers never match and which one to trust for which decision.
Stop trying to make them agree
Every month, somewhere, a marketer opens Ads Manager next to GA4 and loses an afternoon. Meta says the campaign drove 90 purchases. GA4 says 34. Someone gets asked which number is "right," and the honest answer lands badly in a status meeting: both, for different definitions of right.
We've watched teams burn entire quarters trying to reconcile these two reports. They never fully reconcile. Not because something is broken, but because the two systems measure different things, on different clocks, with different rules. Once you know the rules, the gap stops being alarming and starts being information.
The five reasons the numbers diverge
Attribution windows. Meta's default takes credit for a purchase up to 7 days after a click and 1 day after a view. GA4's default model is data-driven attribution across a much longer lookback window, assigned at the session level. The same purchase can be inside Meta's window and outside GA4's reasoning, or vice versa. Different windows, different totals. Always.
View-through conversions. This is the big one. Meta counts people who saw your ad, never clicked, and bought later. GA4 has no idea the ad impression ever happened. Nobody visited your site from it. A campaign with strong view-through will look like a hero in Ads Manager and a ghost in GA4. Neither report is wrong. They're answering different questions.
Modeled conversions. Since iOS App Tracking Transparency, Meta can't observe a chunk of its own conversions, so it statistically models them. Some percentage of the number in Ads Manager is an estimate, and Meta doesn't break out which part. GA4 models too, but differently, with consent mode. Two models, two estimates, no overlap guarantee.
Clicks aren't sessions. Meta counts a click the moment it happens. If the page doesn't finish loading (slow connection, user bails, in-app browser hiccup), GA4 never records a session. In-app browsers on Facebook and Instagram are especially lossy. Expect 10-30% of paid clicks to never become sessions, and more if your landing page is heavy.
Time zones and count dates. Meta attributes the conversion to the date of the click. GA4 attributes it to the date of the conversion. A Monday click that converts Thursday shows up on different days in each report, honestly the most underrated cause on this list. Cross-timezone accounts drift further.
Which number to use for what
Here's the decision table we give teams:
| Decision | Use | Why |
|---|---|---|
| Comparing ad sets inside Meta | Ads Manager | Consistent bias across all of them |
| Comparing Meta vs Google vs email | GA4 or neutral click data | One referee, same rules for everyone |
| Reporting revenue to finance | Your payment platform | The only number that's actually money |
| Feeding the algorithm | Meta pixel/CAPI | It optimizes on its own signal |
The pattern: platform numbers are for decisions inside that platform. Cross-channel decisions need a source that treats every channel identically, because every platform's self-graded homework inflates in its own favor. Meta will never tell you a conversion belonged to Google.
Make the neutral layer solid
The cross-channel referee only works if your tagging is consistent. That means UTMs on every ad, following one convention, with no gclid-style blind spots between platforms. It also means the click record itself has to survive the trip: in-app browsers and redirect chains eat parameters, which quietly moves paid traffic into your direct bucket where no referee can see it.
Click-level tracking on links you control adds one more useful property: it logs the click even when the session never materializes. That 10-30% gap between Meta clicks and GA4 sessions? A tracked short link records those clicks server-side at the redirect, so you can finally see how much of the discrepancy is page-load loss versus attribution logic.
The conversation to have instead
Next time someone asks why the numbers don't match, don't explain attribution windows in a meeting. Say this: "Meta measures ad influence, GA4 measures site behavior, and the bank measures money. They're three rulers. Pick the ruler that fits the decision and stop expecting them to agree."
Then go check that your UTMs are consistent, because the referee is only as good as the tagging. Our free UTM builder is the fastest way to keep that part honest.