Meta vs GA4 Attribution: Why the Numbers Never Match and What to Do About It

Published: January 17, 2025

Updated: July 4, 2026

Modern office data quality dashboard with validity, accuracy, consistency, and completeness icons.

Est. reading time: 7 minutes

Meta says your campaigns drove 120 purchases last month. GA4 credits paid social with 45. Shopify shows 95 orders across every channel. All three are reporting on the same store, and none of them agree.

The usual response is to assume something broke. A pixel misfired, a tag fell off, someone changed a setting. Sometimes that’s true. But most of the time nothing is broken. Meta and GA4 are built to answer different questions, and they will disagree even when both are configured perfectly.

The useful move isn’t forcing the numbers to match. It’s understanding exactly why they diverge, so you know which report to use for which decision.

Why Meta vs GA4 attribution never matches

The gap isn’t one discrepancy. It’s several separate mechanisms stacked on top of each other, each pushing the numbers apart in a predictable direction.

Meta counts impressions. GA4 cannot see them.

Meta’s default attribution setting for website conversions is 7-day click, 1-day engaged view, and 1-day view. That last piece means Meta claims credit for a purchase that happens within a day of someone merely being served your ad, with no click required. The engaged-view bucket does the same for people who watched a few seconds of a video or interacted with the ad without clicking through. Since March 2026, click-through attribution requires an actual link click, so those non-click interactions now sit in their own column instead of inflating click numbers.

GA4 has no visibility into any of this. It cannot see a Meta impression. If a user never clicks, GA4 assigns that purchase to whatever channel did produce a click, often organic search, email, or direct. On accounts with real spend, view and engagement conversions make up a meaningful share of Meta’s reported volume, and every one of them is invisible to GA4 by design. This single mechanism usually explains the largest slice of the gap.

The windows are different lengths

Meta removed the 7-day and 28-day view windows in January 2026, so 1-day view is now the longest impression window available, and click attribution runs up to 7 days. Meta’s attribution documentation covers the current options. GA4’s lookback window for key events runs up to 90 days by default.

A customer who clicks a Meta ad, thinks about it for three weeks, then buys through a branded search falls outside every Meta window but well inside GA4’s. Meta reports nothing. GA4 reports a conversion and credits it partly or fully to search. Both systems are following their own rules correctly.

Conversions land on different dates

Meta reports a conversion on the date of the ad interaction, not the date of the purchase. GA4 reports it on the date it happened. Click an ad on March 28, buy on April 2, and Meta books the sale in March while GA4 books it in April. Compare month-end reports and the same order sits in two different periods. This is why short date ranges disagree more sharply than long ones.

Each platform models what it cannot see

Since iOS 14.5, Meta fills tracking gaps with statistical modeling, estimating conversions it can no longer observe directly. GA4 applies its own modeling for users who decline consent. The two systems estimate different gaps with different math, so the modeled portions of each report will never reconcile. We covered the mechanics of this in our guide to adapting your Meta strategy for post-iOS signal loss.

Meta takes full credit. GA4 splits it.

When a conversion falls inside Meta’s windows, Meta counts all of it, regardless of what other channels touched the customer. GA4’s default data-driven model distributes fractional credit across the click path, so a single order might appear as 0.6 conversions to paid social and 0.4 to email. Meta grades its own homework; GA4 grades the whole class. Google’s attribution documentation explains how the data-driven model weighs each touchpoint, and note that GA4 retired its rule-based models (first click, linear, time decay, position-based) in late 2023, leaving data-driven and last click as the options.

Which report to trust

Trust is the wrong frame. Neither report is the truth. Each is an instrument with a specific job, and the failure we see in accounts is using the wrong instrument for the decision at hand.

Meta’s report tells you what happened after people interacted with your ads, measured on Meta’s terms. That makes it the right tool for decisions inside the platform. Comparing creative, comparing audiences, judging whether one campaign structure beats another. It’s also the data Meta’s delivery system learns from, which is why signal quality matters as much as it does when you’re training Meta’s algorithm with value-based lookalikes.

GA4’s report tells you how the click-based journey distributed across every channel you run. That makes it the right tool for channel mix questions. Whether email is pulling its weight, whether branded search is harvesting demand paid social created, whether the balance between platforms needs to shift. We wrote about that last decision in Google Ads vs Meta Ads: When Each Channel Should Lead Your Strategy.

Neither one measures incrementality, meaning neither can tell you how many of those sales would have happened without the ad. For that you need holdout tests or, at minimum, a blended view. Total revenue divided by total ad spend ignores attribution entirely, which is exactly what makes it a useful tiebreaker when the platforms disagree.

How to close the gap

Make the comparison fair before you make it at all

Most Meta-to-GA4 comparisons fail because they compare unlike settings. Use the Compare Attribution Settings breakdown in Ads Manager to see how your conversions split across click, engaged-view, and view windows. Then compare Meta’s 1-day click column against GA4 with the last click model selected. Those two numbers will still differ, but far less, and the remaining gap points at real tracking problems instead of definitional ones.

Then tag everything. Untagged Meta traffic lands in GA4 as referral or direct, which quietly moves credit away from paid social and widens the gap for no reason. Every ad gets full UTM parameters, no exceptions.

Fix the signal before you argue about the model

An attribution model can only distribute the conversions it receives. Run the Conversions API alongside the pixel and watch your event match quality score, because browser-only tracking loses events to ad blockers and Safari’s tracking prevention, and every lost event degrades both reports. The same hygiene applies to your other channels. Email only shows up in GA4 as its own channel when the links are tagged, which is something we build into every ActiveCampaign workflow we set up.

Watch the ratio, not the gap

The gap itself is permanent. What matters is whether it’s stable. If Meta consistently reports roughly twice what GA4 credits to paid social, that ratio is your baseline, and each report can do its job on top of it. When the ratio moves sharply, something real changed. A tracking break, a shift in view-through share, a new channel absorbing credit. That’s the moment to investigate, not when the absolute numbers disagree, because they always will.

Give every number a defined job

The setups that hold up in practice assign each source a decision it owns. Meta’s report decides creative and audience calls inside Meta. GA4 informs channel mix. Backend orders from Shopify or your OMS set the ceiling no report is allowed to exceed. A single dashboard in Looker Studio, or a third-party tool like Hyros or Wicked Reports if your volume justifies one, puts the views side by side so nobody argues from the most flattering number. For help choosing the model underneath that dashboard, see The Best Attribution Models for Measuring Google & Facebook Ad Success.

The discrepancy between Meta and GA4 is not a problem you solve. It’s a property of two systems observing different slices of the same customer, and it stops costing you decisions the moment each report has a defined job. If your setup has never been mapped this way, it’s one of the first things we untangle in a paid social audit. Get in touch if you want us to take a look.

Reading About It Is the Easy Part.

Fill This Out and We'll Do the Rest.

Your info stays private. You’ll hear back from a real human.