Why Facebook Ads and GA4 Show Different Numbers (And Which to Trust)
Meta Ads Manager and GA4 report wildly different conversion counts for the same campaigns. Attribution windows, counting methods, and consent gaps are the three structural reasons for the gap.
Updated 7 min read
Your Meta Ads dashboard says the spring campaign drove 120 purchases. GA4 says 47. You have triple-checked the date range. Same campaign, same week, same conversion event. The numbers are not even close.
This is not a tracking error. Meta and GA4 fundamentally disagree about how to count conversions, when to count them, and which touchpoints get credit. Once you understand the three structural reasons for the gap, the discrepancy stops being a mystery and starts being a useful signal about how your channels interact.
Reason 1: Attribution windows are different
This is the single biggest driver of the gap.
Meta's default attribution window is typically 7-day click, 1-day view. If someone clicks your ad and converts within 7 days, Meta counts it. If someone sees your ad without clicking and converts within 1 day, Meta also counts it. The view-through conversions are the ones that inflate the number.
GA4's default attribution is data-driven with a longer lookback, but GA4 only counts click-through conversions. If someone saw your Facebook ad but did not click it, then later came to your site through Google Search and converted, GA4 attributes the conversion to Google Search. Meta attributes it to the Facebook ad (1-day view-through).
The view-through gap alone can account for a substantial portion of the discrepancy. A visitor scrolled past your ad in their feed, did not click, then searched your brand name and bought. Meta says "that was us." GA4 says "that was organic search." They are both describing the same purchase, just crediting different touchpoints. For details on how GA4's attribution lookback works, see Google's attribution settings documentation.
Reason 2: Counting methods diverge
Meta counts every conversion event. If someone buys twice in one session after clicking an ad, Meta reports 2 purchases. If they buy once, return 3 days later, and buy again, Meta reports 2 purchases (both within the 7-day click window).
GA4 counting depends on your configuration. If your purchase conversion is set to count "every" event, GA4 matches Meta's behavior. But if it is set to count "once per session" (sometimes misconfigured for purchase events), GA4 undercounts repeat purchases.
More importantly, GA4 distributes credit. If data-driven attribution gives Facebook 40 percent credit for a conversion that also involved Google Ads and email, GA4 reports 0.4 conversions for Facebook. Meta reports 1.0 for the same purchase. Across 100 conversions, that is the difference between GA4 showing 40 to 60 Facebook-attributed conversions and Meta showing 100.
For the counting-method gap, check your GA4 conversion counting method under Admin, then Events, then your purchase event. For purchase events, it should typically be "Every," not "Once per session." For the attribution credit split, there is no fix — GA4 will always distribute credit across channels, and Meta will always claim full credit. For background on how these attribution models work, see our guide to marketing attribution models.
Reason 3: Consent creates asymmetric blindness
This is the reason that does not get enough attention.
GA4's data loss from consent: In EU markets, a significant percentage of visitors reject analytics cookies. GA4 loses these visitors entirely in Basic Consent Mode. In Advanced mode, GA4 sends cookieless pings and models the missing conversions, but modeled conversions have uncertainty margins and do not appear in all reports.
Meta's data recovery advantage: Meta Pixel has the same consent problem, but Meta has a weapon GA4 does not: the Conversions API (CAPI). CAPI sends conversion data from your server to Meta, bypassing browser-side consent restrictions. If a visitor rejects cookies but completes a purchase, your server knows about the purchase and can send it to Meta via CAPI. Meta matches it against ad impressions using hashed identifiers.
This means Meta CAPI can recover conversions that GA4 cannot see. A visitor who rejects all cookies, sees a Facebook ad, and buys via a direct visit is invisible to GA4 but visible to Meta through CAPI. The consent asymmetry inflates Meta's numbers relative to GA4, especially in high-denial-rate markets. See Google's Consent Mode documentation for details on how GA4 handles denied consent.
Which number to trust
Neither number is "right." Each is the right answer to a different question.
Trust Meta for ad spend efficiency within Meta's ecosystem. If you are deciding whether to increase budget on a Facebook campaign, use Facebook's numbers. Meta's attribution model is designed to help you optimize within their platform.
Trust GA4 for cross-channel comparison. If you are deciding whether to shift budget from Facebook to Google Ads, use GA4's numbers. GA4 sees all channels and distributes credit between them, so the comparison is fair. Meta only sees Meta.
Trust your backend for absolute conversion counts. Your order management system or CRM has the real number. Use it as ground truth and compare each platform's reported number against it. For more on how different sources measure conversions, see our cross-source reconciliation guide.
Building a reporting framework
Stop presenting one number. Present the range. A practical reporting structure might look like this:
- Meta Ads Manager (7-day click + 1-day view): the platform's full attribution count, useful for campaign optimization
- Meta Ads (1-day click only): click-attributed conversions, comparable to GA4
- GA4 (data-driven): cross-channel attributed conversions
- Backend (orders or CRM): confirmed actual conversions
This is honest reporting. The client sees the real order count, understands why Meta reports more (view-through attribution), and understands why GA4 reports less (credit splitting across channels). Nobody is confused about which number to use for what.
SyncingBeam helps you present these ranges rather than single numbers, so the conversation with your client starts from transparency rather than false precision. The directional agreement across sources — both going up, both going down — is often the most reliable signal you have.
Practical fixes
Align attribution windows. Set Meta to 1-day click for comparison reports. Keep 7-day click plus 1-day view for campaign optimization within Meta, as the algorithms work best with that setting.
Implement CAPI. Server-side conversion tracking through Meta's Conversions API recovers conversions lost to browser-side consent rejection and ad blockers. It does not fix the attribution model difference, but it makes Meta's numbers more complete.
Use UTM parameters consistently. Every Facebook ad should have proper UTM tagging (such as utm_source=facebook&utm_medium=paid-social). This ensures GA4 correctly attributes Facebook traffic instead of bucketing it as direct or none when click identifiers do not parse.
Report the backend number. Your CRM or order system is the ground truth for revenue. A stable 30 percent gap between Meta's reported conversions and actual backend orders is normal and expected. A widening gap means something changed.
Track the gap over time. If the Meta-to-GA4 ratio stays stable, it is a known offset. If it shifts, investigate. Sudden changes often catch tracking breaks, consent rate shifts, or bot traffic increases faster than monitoring either platform alone. For more on how GA4 and Google Ads specifically diverge, see our GA4 vs Google Ads discrepancy guide.