Sep 16, 2026 · Germán Muñoz Moreno, Co-founder
Why GA4 disagrees with your ad platforms and your store

GA4 shows different numbers than Meta, Google Ads and my store. Which one should I trust?
When Meta and your store disagree, the usual next move is to open GA4 and see who is right. It is a reasonable instinct and it does not work, because GA4 is not a referee. It is a third measurement with its own model, its own clock and its own blind spots, and on the specific question of how many sales a channel produced it is the least suitable of the three to arbitrate.
That is not a complaint about GA4. It is very good at the question it was designed for. It is an argument about which number should be the anchor.
GA4 gives one channel everything
The acquisition reports credit the last non-direct click. If a buyer clicked a Meta ad on Tuesday, searched your brand on Thursday and bought, GA4 records that order against organic search and gives Meta zero. Meta, meanwhile, credits itself, correctly by its own rules, because its click fell inside its window.
Neither report is lying. One is a winner-takes-all model and the other is a within-window claim, so their totals cannot agree even when every underlying event is captured perfectly. Understanding this removes most of the urge to reconcile them: the difference is definitional, and no amount of tag fixing closes it.
There is more than one model inside GA4
This surprises people who assume a property has one answer. Traffic acquisition uses session-scoped dimensions, so it tells you which channel brought the session in which the purchase happened. User acquisition uses first-touch dimensions, so it tells you which channel brought that person to the site the first time, possibly months earlier. The Advertising section applies the property's own attribution model, which for most properties is data-driven.
Those are three different answers to what a reader thinks is one question, and all three are on screen in the same tool. Before comparing GA4 to anything, it is worth being explicit about which of the three you are looking at, because two people quoting GA4 at each other are frequently quoting different reports.
Direct is a gap, not a channel
GA4 labels a session Direct when it cannot read where it came from. Very little of that is someone typing your URL from memory. Most of it is mechanical: a redirect that dropped the query string, an email or messaging client that stripped the referrer, an in-app browser, a link shortener, a campaign nobody tagged.
This matters because Direct is where credit goes to die. Every order in that bucket is one that some channel actually produced and cannot be credited for, so a growing Direct share is usually a tagging problem being read as a change in customer behaviour. It is also the first thing to check before concluding that a paid channel underperformed.
The purchase count depends on the browser
GA4 knows a purchase happened because a purchase event fired in the browser. Everything that stops that event, an ad blocker, tracking protection, a checkout that renders on a payment provider's domain, a customer who closes the tab on the confirmation screen, removes the sale from GA4 while leaving it in your store.
This is the same loss that affects your Meta pixel, for the same reasons, so it does not cancel out when you compare the two: both are under-counting from the same missing traffic while the store is not. It is also why a GA4 purchase count that matches your store exactly is worth a second look rather than a celebration.
Dates, thresholds and refunds
Three smaller sources of difference are worth knowing before you spend an afternoon on them. GA4 reports on its property timezone, which is frequently not your store's and almost never your ad account's. When Google Signals is on, GA4 applies data thresholds and withholds rows that could identify individuals, so a filtered report can be incomplete and say so quietly. And a refund only reduces GA4 revenue if a refund event was implemented, which on most stores it was not.
What GA4 is genuinely the best tool for
None of this makes GA4 the weak link. It answers questions the other two cannot touch: which landing pages convert, where people drop out of a funnel, how site search behaves, what a returning visitor does differently, which content assists later purchases. Those are behavioural questions about your own site, the data is first-party, and no ad platform has a view of them.
The failure is not using GA4. It is using GA4 as the ledger.
Pick an anchor, then read everything else as a claim about it
There is exactly one number in this picture with no attribution model inside it: the list of orders your store actually settled. It does not depend on a window, a model, a consent choice or a browser event firing. Every other source is making a claim about that list.
Anchoring there changes the question from which tool is right to how much of each claim can be verified against the orders that exist. It also makes a useful test available. A platform can legitimately resolve a buyer you never saw, but no platform can resolve an order that does not exist, so the total of all platform claims for a window has a hard ceiling: the settled orders in it. Below that ceiling the claims are plausible and partly unverifiable. Above it, the excess is double-counting and it is provable.
Common questions
Why is GA4 showing fewer purchases than Shopify?
GA4 counts a purchase when the browser fires a purchase event. Your store counts an order when the order exists. Anything that stops the browser event, an ad blocker, Safari's protections, a checkout on another domain, a page abandoned before the tag ran, removes a purchase from GA4 and not from your store. A persistent one-directional gap of this shape is the normal state, not a misconfiguration.
Why does GA4 attribute so much to Direct?
Direct is what GA4 writes when it cannot read a source for the session. The common causes are links that lose their query string through a redirect, email and messaging clients that strip referrers, in-app browsers, and any campaign that was never tagged. Direct growing is usually a tagging or redirect problem, not a change in how customers find you.
Should I change GA4's attribution model to match Google Ads?
Changing the model in the Advertising section changes the numbers there, and it does not change the Acquisition reports, which use session-scoped last non-direct click regardless. Matching the two is possible for one report and not for the product, so the more useful move is to stop expecting them to match and be explicit about which report answers which question.
Why do GA4 and Google Ads disagree when they are both Google?
They use different models, different date bases and different definitions of a conversion. Google Ads credits the click date and can split one order across interactions; GA4's acquisition reports credit one channel on the session date. Being owned by the same company does not make two products one measurement system.
Does GA4 hide data?
It withholds some rows rather than hiding them silently. When Google Signals is enabled, GA4 applies data thresholds so a report cannot be used to identify an individual, and it tells you a threshold was applied. Explorations over large datasets can also be sampled. Neither is a bug, but both mean a GA4 row is not always a complete count.
