Analytics and Tracking

Why GA4 and Facebook conversion numbers do not match

Meta and GA4 count conversions by different rules, and a UK cookie banner lets each see a different set of visitors. Here is what causes the gap and which figure to use.

Why GA4 and Facebook conversion numbers do not match: article by Sudeshna Thapa
In this article7
  1. Two tools answering two different questions
  2. Where the gap comes from
  3. What a UK cookie banner does to both numbers
  4. Normal disagreement or a real fault
  5. Which number should you trust?
  6. How to narrow the gap honestly
  7. Where I would start

GA4 and Facebook rarely agree on conversions because they count different things. Meta’s Ads Manager counts people who saw or clicked an ad and later converted, matched through their Facebook or Instagram login, including some who never clicked at all. GA4 counts conversions that happened on your website and gives each one to the visit it thinks earned it, which is often not Facebook. In the UK a cookie banner widens the gap again, because each tool can only count the visitors who allowed it to. A steady gap is normal. A gap that suddenly changes is the sign that something is broken.

This post explains where the difference comes from and which figure to use for which decision. If you suspect the tracking itself is faulty, start with the step-by-step test in how to check your conversion tracking works. Here I assume the tags fire correctly and ask why the reports still disagree.

Two tools answering two different questions

Ads Manager asks: of the people who saw or clicked this ad, how many went on to convert within the time allowed? It starts from the ad and looks forward. It can see someone scroll past an ad on Instagram in the morning and buy on your site that evening, because that person stayed logged in to Meta on their phone.

GA4 asks: of the conversions that happened on this website, which visit or channel should get the credit? It starts from the conversion and looks back. It only knows about visits to your site, so an ad that was seen but never clicked does not exist as far as GA4 is concerned.

Both answers can be honest and still be far apart. The causes below explain how, and usually two or three of them account for most of the gap on a given account.

Where the gap comes from

Different time limits on credit

Meta’s standard attribution window is 7 days after a click and 1 day after a view. If someone clicks an ad on Monday and buys the following Sunday, Meta claims the sale. GA4 applies its own lookback settings (under Admin, then Attribution settings) and weighs every visit in between. If the buyer came back on Sunday by searching your business name on Google, GA4 may hand most or all of the credit to Google instead.

Ad views GA4 never sees

The “1 day after a view” part matters most for businesses selling to consumers. A view-through conversion is credited to an ad the person saw but did not click. Meta counts it; GA4 cannot, because no visit from Facebook took place. If someone watched your Reel, searched for you an hour later and booked, Meta records a conversion and GA4 records a Google one. Neither tool is wrong by its own rules.

One person, several devices and browsers

People tap Facebook and Instagram ads on their phone, inside the app’s own built-in browser, and often finish later on a laptop or in Safari or Chrome. Meta can join those moments up because the same person is logged in throughout. GA4 usually sees two strangers: one who arrived from Facebook and left, and another who arrived some other way and bought. That is a cross-device conversion, and Meta’s figure includes it where GA4’s usually does not.

Credit shared out differently

GA4 decides which channel gets credit using its reporting attribution model, which is data-driven by default and can split one conversion between several channels on the path. Many people compare Meta against GA4’s Traffic acquisition report instead, which credits each conversion to the source of the session it happened in. Meta shares credit with nobody: if its rules say the ad played a part, the whole conversion appears in Ads Manager. Google Ads does the same in its own account, so if you add up what each ad platform reports, the total usually comes to more than your real sales.

Estimates mixed in with measurements

Since Apple introduced App Tracking Transparency in 2021, iPhone users who decline tracking in the Facebook and Instagram apps cannot be followed in the old way. Meta fills part of that hole with statistical estimates, so some of what Ads Manager reports is modelled rather than observed one by one. GA4 can also model behaviour for visitors who refuse cookies, if Consent Mode is set up and the property has enough traffic to qualify. Two sets of estimates, built from different data, will not land on the same number.

Different definitions of a conversion

This is the cause I check first, because it is the easiest to fix. A common pattern: the Meta Lead event fires when someone clicks the submit button, while the GA4 key event fires when the thank-you page loads. Form errors, spam filters and people who click twice all widen the difference. Shops see the same thing with purchases, where one tool counts every order and the other counts once per session, or one includes VAT and delivery in the value and the other does not.

Reporting dates and time zones

Ads Manager reports a conversion against the date of the ad impression or click; GA4 reports it on the day it happened. A Saturday click that turns into a Tuesday sale can sit in different weeks in the two tools. Check the time zones too: an ad account created with a US time zone splits each day at a different hour from a GA4 property set to London.

Under PECR and UK GDPR, the Meta Pixel needs a visitor’s consent before it sets cookies, and most UK sites ask before loading Google Analytics as well. Each visitor’s choice decides which tool can see them.

  • Accept all. Both tools can record the visit and the conversion.
  • Accept analytics, reject marketing. GA4 records the conversion. The pixel stays off, so Meta has no record of it from your site.
  • Reject all. Neither tool records the visit in the usual way. With Consent Mode in its advanced form, Google’s tags send cookieless signals that GA4 can use for modelling. The pixel has no equivalent.
  • Ignore the banner. Nothing that needs consent should load until the visitor chooses, so this works like a refusal.

So GA4 and Meta are each counting a different slice of your visitors, and the size of each slice moves with your banner design, your audience and the mix of phones and computers. Change the banner and both numbers will shift, along with the gap between them, without a single customer more or fewer.

The answer is not to load the pixel before consent. That breaks PECR and leaves you with figures you could not defend if a customer or the ICO asked how they were collected. The honest position is to accept that some conversions will go unmeasured and to judge the ads against your own records, which the next two sections cover.

Normal disagreement or a real fault

There is no standard ratio between the two reports, so do not judge your account against a figure from someone else’s. Judge it against its own history.

  • A stable gap. If Meta has reported roughly the same multiple of GA4’s figure for months, the differences above are behaving as they always do. Leave it alone.
  • A sudden jump or drop. If the gap changes overnight, look at what changed that day: a new cookie banner, a theme or plugin update, a rebuilt form, a second copy of the pixel added by an app, or a campaign switched to optimise for a different event.
  • Zero on one side. GA4 showing no Facebook conversions at all usually means the ad links carry no tracking tags, so the visits land as referral or direct traffic. Meta showing none while GA4 shows plenty means the pixel or the event has stopped firing.
  • More conversions than real enquiries. If Meta reports more leads than your inbox received in total, look for duplicates before anything else. A pixel and a server connection sending the same event without a shared identifier will count it twice.

The last three are faults, not attribution, and they are worth a proper tracking test rather than more reasoning about models.

Which number should you trust?

None of them on its own, because each is built for a different decision.

  • Your own records decide whether the ads pay. The enquiries in your inbox or CRM, the bookings in your diary, the orders in Shopify or WooCommerce: these are real customers. Compare total ad spend with total new business month by month, and ask new customers where they heard of you.
  • GA4 compares channels on one consistent basis. It applies the same rules to Google, Meta, email and organic search, so it is the fairer place to compare them with each other, even though it understates Meta’s influence.
  • Ads Manager compares ads with other ads. Its numbers are generous, but generous in the same way across your campaigns, so they work for choosing between audiences, creative and offers inside Meta.

When the decision is a big one, such as doubling the budget, test it rather than argue about reports. Pause the ads in part of the country, or for a few weeks, and watch what happens to real enquiries. That is the idea behind incremental attribution, and even a rough version tells you more than any attribution model. When you work out return on spend, put revenue from your own records into the ROAS and ROI calculator, not the revenue Ads Manager reports.

How to narrow the gap honestly

You will never close it completely, and nothing below involves tracking people who said no. These changes remove the avoidable part.

  1. Tag every ad link. Add UTM parameters to each Facebook and Instagram ad so GA4 files the visit under the right source and campaign instead of guessing. The free UTM link builder keeps the naming consistent, and the URL parameters field in Meta’s ad setup can fill in campaign and ad names for you.
  2. Fire both tools on the same success. Pick one moment for each conversion, usually the confirmation page or the form’s success message, and trigger the GA4 key event and the Meta event from that same moment.
  3. Add the Conversions API, with deduplication. The Conversions API sends events from your server, which recovers conversions that browsers and ad blockers stop the pixel from reporting. Send the same event ID from pixel and server so Meta counts each conversion once, and only send events for visitors who gave consent.
  4. Compare on the same terms. The Compare attribution settings option in Ads Manager’s columns shows click and view conversions separately. Lining up Meta’s click-only figures with GA4 takes the view-through gap out of the comparison.
  5. Match the settings. Same time zone, same currency, the same rule on whether VAT and delivery are included in values, and the same date range in both tools.
  6. Make the banner do its job. A banner that genuinely controls the tags, with Consent Mode switched on for Google’s tags, gives you lawful data plus a modelled view of what you cannot measure directly.

Where I would start

Pull last month’s numbers from three places: Meta’s reported results, GA4’s conversions from Facebook and Instagram traffic, and your own count of enquiries or orders. Put them side by side. Then check two things: that every ad carries UTM tags, and that both tools fire on the same event. Those are the cheapest fixes on this list.

If the gap still makes no sense, or the ads look profitable in one report and wasteful in another, I can go through the account with you. Getting measurement straight is part of how I run Facebook ads management for UK businesses, and I check it before changing a single campaign.

Frequently asked questions

Should I switch Meta to count clicks only and drop view-through conversions?

You can set an ad set to 7-day click only, but the attribution setting also shapes what Meta's delivery system learns from, so it changes how the campaign is optimised as well as what it reports. For products people buy on impulse after watching a video, views can be genuine influence. I would show click and view results in separate columns first, judge both against your own sales for a few weeks, and only then decide.

Why does GA4 list my Facebook traffic under several different sources?

Without tags, visits from Facebook and Instagram arrive with whatever referrer the app or browser passes on, so they can appear as m.facebook.com, l.facebook.com, instagram.com or even direct, and ads get mixed up with unpaid posts. Adding UTM parameters with a consistent source and medium puts paid social into one place, separate from your organic posts.

Does Google Ads disagree with GA4 in the same way?

Yes, for similar reasons. Google Ads uses its own conversion windows, reports conversions against the date of the ad click, and on YouTube and Display can count conversions after a view. The gap is usually easier to line up because both are Google products and Google Ads can import GA4 key events directly. My PPC management work starts by checking which source each conversion action uses.

Will server-side tracking let me count people who reject cookies?

No, and it should not be used for that. Server-side tracking changes where tags run, which helps with ad blockers and browser limits on cookies for visitors who agreed to tracking. Sending details of people who refused to Meta anyway would ignore the choice they made on your banner, and would be very hard to justify under UK GDPR.

Found this useful?

Share it, or ask an AI to summarise it

Written by

Sudeshna Thapa

SEO and Digital Marketing Consultant.

Need help with this?

Book a call and I will tell you what applies to your site, and what can safely wait.