Tracking and measurement
Meta vs GA4 conversions: why the numbers never match, and which one to trust
Meta and GA4 rarely agree on conversions, and the gap is usually normal rather than broken. What each one counts, why they disagree, and the number to trust.
Meta’s default attribution setting, set out in its Business Help Center, credits a conversion that happens within seven days of a click or within one day of someone seeing the ad without clicking. GA4 has no equivalent for a Meta impression. So when a person scrolls past your ad on Tuesday, buys on a laptop on Wednesday. Meta reports a purchase that GA4 files under direct, both dashboards are telling the truth as they understand it.
That is the gap. It is not a bug and it is not going to close. Meta and GA4 count different things, over different clocks, using different definitions of a conversion, and the useful question is not which one is right. It is what the shape of the gap says about your tracking, and which number you run the business on.
What attribution is
Attribution is the decision about which ad or channel gets credit for a sale or a lead. Every platform makes that decision by its own rules, and the rules disagree.
Meta looks at people. It knows someone saw your ad on Instagram at nine, clicked nothing, and came back two hours later on a laptop and bought, because that person is logged in on both. GA4 looks at sessions and cookies on your website. It sees a laptop session with no obvious ad source and files it under direct or organic. Same purchase, two stories.
Why Meta reports more
Four differences do most of the work.
View-through conversions. Meta counts a purchase within a day of an impression nobody clicked. GA4 cannot see the impression, so those conversions are invisible to it.
Cross-device matching. Meta matches when the person is logged in on both devices. GA4 usually loses the thread when someone moves from phone to laptop.
The date. Meta files the conversion under the day of the ad interaction. GA4 files it under the day the conversion happened. Run a report on a single day and they disagree even when every other setting matches.
The clock. Meta’s default click window is seven days. GA4’s attribution settings use thirty days for acquisition events and ninety days for other key events, according to Google Analytics Help. A seven-day clock and a ninety-day clock were never going to agree on a total.
The model GA4 is using on a small account
GA4 defaults to a data-driven attribution model, which shares credit across touches using machine learning. On a property with a few dozen conversions a month, the model has little to learn from and its output sits close to last click. Last click by definition hands the credit to the final touch. Paid social is rarely the final touch. It is the thing that put you on the shortlist, and last click gives it nothing for that.
Whether a gap means something is broken
Not by itself. On the paid social accounts measured here, a gap of a fifth to a half between Meta and GA4 is ordinary, and it is the normal result of the differences above. What matters is the shape of the gap rather than the fact of it.
Start worrying when GA4 shows almost nothing. If Meta reports two hundred purchases and GA4 reports four, a pixel or a tag has stopped firing. The same applies when a steady gap triples in a week and spend did not change.
Signal loss is real and partial. According to AppsFlyer, around half of iOS users globally now consent to tracking when Apple’s prompt appears, up roughly ten points since it arrived in 2021. Half the signal degraded is not all of it, and an agency telling you tracking is dead is selling something.
The number to trust
Neither. Trust the bank account.
Count the outcomes you can hold: booked calls, signed jobs, invoices raised, orders in the shop admin. Those numbers do not care about attribution windows. Then give each dashboard the job it is good at.
Meta is the better tool for judging one ad against another, because it is the only system that saw the impression. GA4 is the better tool for judging channels against each other, because it is the only system that saw the website.
Asking either to settle the other’s argument is how owners end up pausing the campaign that was carrying the month.
The five checks
- Pull the real numbers first: leads in the CRM or inbox, jobs booked, revenue billed for the month. 2. Pull total ad spend for the same month from Meta. 3. Ask the plain question. Did the business get more of what it wanted for that money? 4. Ask new customers how they found you. People misremember, and a pattern across thirty answers still tells you something. 5. Run a holdout. Switch Meta off for two weeks and watch total lead volume.
The holdout is the check most owners skip, and it is the one that answers the question. Two quiet weeks are cheap against a year of arguing with a dashboard. The same method settles the equivalent argument in email, where the sending platform and analytics disagree for the same reasons, and what email marketing actually returns walks through that arithmetic.
Three settings that change the gap
Setting Meta to seven-day click only brings the dashboards closer and removes view-through conversions from what Meta reports, which makes good awareness campaigns look weak. If you change it, keep it changed, so month-on-month comparisons still mean something.
The Conversions API closes part of the gap by recovering conversions that browser blocking loses. It does not remove view-throughs or the date difference, so expect a gap to remain.
GA4 labelling Meta traffic as direct is usually missing UTM tags on the ad link, or an in-app browser dropping the referrer when it hands off to Safari or Chrome. Tag every Meta ad URL and most of that traffic gets labelled correctly. The conversion tracking guide covers the setup.
Where the line is
The two numbers cannot be made to match, and an agency promising to reconcile them is promising something the platforms do not support. Aim for a stable gap you can explain, and get suspicious when it changes shape.
The gap between Meta and GA4 is two systems answering two different questions on two different clocks. Pick your source of truth, hold the settings still, and judge the ads on whether the business moved.
Questions people ask about this
How do I check whether my Meta pixel and GA4 tag are both firing?
Load a page on your own site with the browser’s developer tools open and watch the network requests, or use the Meta Pixel Helper extension and GA4’s DebugView. Do it on a phone as well as a laptop, because many tags break only on mobile. Check the thank-you page or the order confirmation specifically. That is where conversion events fire and where a redesign most often removes them.
Should I use Meta’s numbers or GA4’s when deciding to scale a campaign?
Neither on its own. Use Meta to decide which ad or ad set deserves more budget, because it is the only system that saw the impression. Then use the real outcome count, such as orders or booked calls, to decide whether the campaign as a whole deserves more money. If Meta says scale and the bank account says nothing changed, the bank account wins.
What size of gap should make me worry?
The post gives the range seen here, a fifth to a half. Worry when the gap is far outside that, in either direction, or when a steady gap changes shape suddenly without a change in spend. GA4 showing almost nothing is a broken tag. Meta showing almost nothing is usually a pixel or Conversions API problem. A gap that is large but stable month after month is normal and can be worked with.
Can I make Meta and GA4 use the same attribution window?
Only partly. You can set Meta to seven-day click and remove view-through, and you can adjust GA4’s lookback windows in its attribution settings. Even then the date rule differs, cross-device matching differs and GA4 cannot see impressions. The two will move closer, not together. Change the settings once, write down the date, and stop touching them, so month-on-month comparisons still mean something.
Why does GA4 show my Meta traffic as direct?
Usually because the ad link carries no UTM parameters, or because the in-app browser dropped the referrer on its way to Safari or Chrome. Add utm_source, utm_medium and utm_campaign to every ad URL through the URL parameters field in Ads Manager, so every ad inherits them. Then check the GA4 traffic acquisition report a week later. Most of the direct traffic should have moved to paid social.
Do I need the Conversions API for a small account?
If a meaningful share of your visitors decline cookies or use Safari, yes, because the browser pixel is losing events you are allowed to keep. Most shop platforms offer it as a native integration you can switch on. It recovers some of the gap and improves the data Meta bids on. It will not make the two dashboards agree, and nobody should tell you it will.
How do I run a holdout test properly?
Pick two quiet weeks, not your busiest fortnight. Pause every Meta campaign, change nothing else, and record total leads or orders from the shop or CRM each day. Compare against the two weeks before and the same weeks last year. If total volume barely moved, Meta was claiming conversions you would have got anyway. If it fell clearly, the ads were working whatever GA4 said.
What is a view-through conversion, in plain terms?
Someone sees your ad, does not click it, and buys within Meta’s one-day view window anyway. Meta counts that as a conversion the ad caused. GA4 never saw the ad, so it credits whatever the person did next, often a direct visit or a search. View-throughs are real for some campaigns and inflated for others. Reporting on seven-day click only tells you how much of your number depends on them.
Which conversion should I set as the goal in each platform?
The same real outcome in both, defined the same way. If the goal is an order, both should count orders, not add-to-carts in one and orders in the other. Mismatched definitions cause more of the argument than attribution does. In Meta, make that event the only primary conversion for the campaign. In GA4, mark the same event as a key event and check the counting method matches.
Does the discrepancy get worse with iOS users?
Yes, on the Meta side. Apple’s prompt means a share of iPhone users cannot be matched to their ad interaction, so Meta models some of those conversions statistically rather than seeing them. The post cites AppsFlyer’s figure that around half of iOS users now consent. If your audience is heavily iPhone, expect more modelled conversions and a wider gap, and lean harder on the outcome count from your own systems.
How do I explain the gap to a business partner or a boss?
Say that Meta counts people it showed the ad to and GA4 counts website sessions, on different clocks, so they cannot match. Then show one number they trust: orders or leads this month against ad spend this month. Present the gap as a stable ratio you monitor rather than a problem to fix. Most arguments end when the conversation moves from dashboards to money.
Free review
Want this looked at on your own site?
Send the address. A person reads it and writes back with the two or three things that would move your enquiry number first. Free, and yours to keep whether you hire us or not.