AKAntonios Kioksoglou
Contact

← All articles

By · · 8 min read

Meta, GA4 and your store report three revenues. Here is how I reconcile them.

Meta, GA4 and a store can all be right and still disagree. This is what each one counts after Meta's March 2026 attribution change, how to split the gap into named causes, and which number to trust for which decision.

On this page
  1. Three systems, three questions
  2. What Meta changed in March 2026
  3. Step 1: Write down what revenue means
  4. Step 2: Check GA4 against the store first
  5. Step 3: Compare like with like
  6. Step 4: Keep the soft layers on their own line
  7. Step 5: Keep one anchor, and make it a routine
  8. Which number for which decision
  9. Where this leaves me

Open Ads Manager, GA4 and the store admin on the same Monday and you get three revenues. Meta says its ads sold more than the store booked. GA4 says less. The store, the only one of the three that handles money, says something else again. Three tabs, one Monday, and a spreadsheet that has seen things.

None of them is lying. They answer three different questions, like a match seen from the stand, on the TV replay and on the scoreboard. The goal is not to make the numbers equal. It is to say, in one sentence each, why they are not. That turns an argument into a checklist, and it is the follow-up to my Master Brief article, which says to compare Meta’s purchases with the store’s orders every week. This is how.

The numbers in the examples are made up to show the method. The settings are as of early October 2026, so check them in your own account.

Three systems, three questions

The store counts the orders it accepted. It is the only system that sees money, so it is the source of truth for revenue. It still needs a definition: VAT and shipping in or out, refunds subtracted or not, and whether test orders and canceled orders count.

GA4 counts what its tag saw on your site, and credits a purchase to a source with its own attribution model. It can only credit what it can see: visitors whose tag fired, which in the EU usually means visitors who accepted consent. Where Consent Mode is set up, Google can fill part of the gap with modeled data, which is an estimate, not a measurement.

Meta counts conversions it can connect to an ad interaction inside a window, whether or not another channel also gets credit. By default it counts every purchase a person makes inside that window, not only the first.

So Meta can report more orders than the store has, and nothing is broken. A customer who saw a Meta ad, opened an email and searched for the brand is one sale that three systems are each proud of.

What Meta changed in March 2026

On March 3, 2026, Meta announced that click-through attribution for website conversions would count link clicks only. Until then, a like, a share or a save on the ad could start the seven-day clock, even if the person never visited your site from it. Those clicks now count under a new layer, engage-through, which has only a one-day window, so a purchase two to seven days later no longer counts there. It also covers the old engaged-view, a video watched for at least five seconds. I am relying on Jon Loomer’s write-ups for the definitions, so check them against Compare Attribution Settings in your account.

A website conversion goal now reports three layers by default:

LayerCounts a purchase afterDefault windowCan anything else see it?
Click-througha click on the ad’s link7 daysYes: a visit in GA4 and, with UTM tags, in the store
Engage-througha like, comment, share, save or five-second video view, without a link click1 dayNo
View-throughan impression, without a click1 dayNo

The last column is why I am writing this. Only the first layer leaves a trace outside Meta. The other two are Meta’s claims about influence. They can be fair, but nothing else can confirm them, and Loomer calls view-through the most likely source of inflated results, especially in remarketing, where someone already on the way to buying through another channel gets an impression the same day. Since March, click-through also means what most people always assumed it meant, which makes it the layer to compare with everything else.

Step 1: Write down what revenue means

Put the store’s definition at the top of the report and make the other two follow it. Then check three boring things that cause more mismatch than any attribution setting: the dates, the time zone (the store, the GA4 property and the Meta ad account each have one, so an order at 11:30 p.m. can land on different days) and the currency. Decide how VAT and shipping appear in the purchase value you send to GA4 and Meta, and keep it that way.

Step 2: Check GA4 against the store first

Before you look at Meta, compare GA4 purchases with store orders for the same days. This is a tracking question with a short checklist:

  • Every purchase carries a unique transaction ID. GA4 deduplicates purchases that share one, so an empty ID makes every purchase that carries it count as one.
  • The confirmation page does not fire again on reload, and customers coming back from a payment provider are not lost.
  • You know how many visitors say no to consent, because they are missing unless Consent Mode models them.
  • Refunds and canceled orders reach GA4 only if the store sends them.

If GA4 is far from the store, fix that first. Everything below is built on it.

Step 3: Compare like with like

Compare Meta’s click-through purchases with the purchases GA4 credits to paid social. This only works if the ads carry UTM tags. GA4 files a visit under Paid Social when the source is a social site and the medium looks paid (such as cpc, ppc, retargeting or anything that starts with paid). Traffic from Facebook or Instagram without tags becomes Organic Social if a referrer comes through, and Direct if it does not, which can happen in in-app browsers. So tag every ad, for example with utm_source=facebook and utm_medium=paid_social.

On the Meta side, use Compare Attribution Settings or Breakdown by Attribution to read 7-day click-through on its own. Then switch the conversion count between all and first conversion: if the gap shrinks, part of it is repeat buyers counted more than once.

An example with invented numbers, the same 30 days for a made-up store:

StoreGA4Meta
All purchases1,000 orders9201,240
Click-through300 credited to paid social700
Engage-throughnot visible120
View-throughnot visible420

GA4 sees 92 percent of the store’s orders: a tracking gap worth a look, not a crisis. Meta reports 1,240 purchases against 1,000 orders, and 540 of them sit in the two layers nothing else can see. The click-through layer says 700 and GA4 credits paid social with 300. That gap of 400 is the one to dig into. The usual suspects are ads without tags, in-app browsers that drop the referrer, GA4 giving the credit to an email or search click later in the same path, and people who clicked on a phone and bought on a laptop. The channel table on the Overview of my sample workspace shows the same effect in revenue: in the 30-day view the four platforms together report about 1.2 times what the store booked.

Step 4: Keep the soft layers on their own line

A shopper who sees an ad, does not click and searches for the brand that evening was probably influenced. But the store cannot confirm it and GA4 never saw it, so I report engage-through and view-through on a separate line instead of folding them into one ROAS. Loomer suggests keeping 1-day engage-through on for purchases and considering removing 1-day view-through for other events and for remarketing. To learn how much of the soft layer is real, test it with a holdout, a geo test or Meta’s incremental attribution setting. A small difference between standard and incremental results is what Loomer reports seeing, so treat it as a lens, not a verdict.

Step 5: Keep one anchor, and make it a routine

MER, total store revenue divided by total ad spend, ignores attribution, so no platform can explain it away. I keep it at the top and build one Looker Studio page underneath (the Analytics tab shows the tools): store orders and revenue, GA4 purchases and their ratio to the store, Meta’s three layers beside spend, GA4’s paid-social purchases, MER, and the definitions from Step 1 in plain text.

Read it weekly. The ratios do not have to be constant, only stable enough that a change means something happened. When one jumps, look for the boring reason first: a tag change, a promotion, a new audience, a payment provider that stopped redirecting back.

Which number for which decision

DecisionThe number I useWhy
Are ads paying for themselves?MER from the storeNo platform can attribute it away
Which ad set or creative to scaleMeta, 7-day click-through, same settings on every adSame rules for every ad, so the comparison is fair
How channels compareGA4 with consistent UTM tags, next to MEROne set of rules for all channels, but only for visitors it sees
Whether the soft layers are realA holdout, geo test or incremental attributionA report cannot answer that

Where this leaves me

A reconciliation that ends with equal numbers has probably been tuned. One that ends with each gap named and sized has told you something. Do not tune windows until Meta matches the store, and do not delete the soft layers: label them and keep them out of the hard number. For money I trust the store, for ads I trust Meta’s click-through, and the ratio between them tells me how much to worry. The numbers will not match, but the report can still agree with itself.

Sources: Jon Loomer, Click-Through Attribution Now Requires a Link Click (March 3, 2026) and How Meta Ads Attribution Works in 2026 (March 10, 2026). Google, Default channel group and Minimize duplicate key events with transaction IDs. Meta changes these settings often, so some details here may have moved on.

Markdown version Email me about it

More articles

  1. GA4 or Piwik PRO? What each one sees after a visitor says no

    Both tools lose data when a visitor declines cookies, and they lose different things. This is what GA4's consent mode and Piwik PRO's anonymous mode each record, what is observed and what is estimated, where the EU's cookie reform stands, and a test to run on one site.

  2. Let an AI agent read your analytics, not change it

    Google now ships official MCP servers for Analytics, Ads and BigQuery, so an agent can answer questions about your numbers. This is how I would give it a seat instead of the keys: read-only identities, ten questions with known answers, and the ways it still goes wrong.