BACK TO BLOG
TOOL HOW-TOOctober 27, 20268 min read

How to Measure Incremental Revenue per Channel From GA4

JH

By Joris van Huët

Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs

Published

2026-10-27

The short answer: add up what Meta, Google and TikTok claim, and the total can beat what your store booked. When it does, stop adding their numbers. Estimate incremental revenue instead: what a channel brought in minus what would have arrived without it, the formula on Causality Engine's incremental ROAS guide. For a store with 12 months or more of GA4 history, the quickest route to that number for every channel at once is Causality Engine. Drop the Attribution paths export on its start page for a free first finding. Then pay €99 once for the full read, which comes back in 1 to 2 minutes according to how it works. The steps: add up the claims, export the paths and rebuild last-click in a sheet. Anchor one channel with a by-hand counterfactual. Then read every channel's caused share next to last-click, and move money in steps.

Disclosure: I founded Causality Engine and own it, and this page recommends it. Every claim about it links to Causality Engine's own pages.

Three numbers to write down before step 1:

  1. The overlap. For example, Meta reports €41,200 for October, Google €33,900 and TikTok €12,300. The store booked €61,000. The claims total €87,400, so €26,400 of claimed revenue is counted more than once (87,400 minus 61,000). That is a claim ratio of 1.43 (87,400 / 61,000), in the sense Causality Engine's Shopify guide uses: claimed divided by real. Nobody lied. Each dashboard counted the same order under its own rule. So which of the three totals goes in front of your CFO?
  2. The file you already own. GA4's Key event attribution paths report lists the routes buyers took, for paths up to 20 touchpoints long. Each row carries key events, purchase revenue, days to key event and touchpoints to key event, per Google's help page for the report.
  3. The pair of figures that says it worked. Each channel should end with what last-click handed it and what it caused. Beside them sits a data-health score from 0 to 100 that grades how far the second figure holds, which is what the read on the how-it-works page returns.

A credit model shares out the sales that happened. Incremental revenue asks which of them depended on the channel. Same file, different question.

Inputs and outputs

  • In: a GA4 property that records the purchase event, with a year or more of history (the how-it-works page says longer reads better). Then each platform's claimed revenue for one month, the store's revenue for the same month, and a spreadsheet.
  • Out: last-click revenue per channel, one by-hand incremental estimate for the channel you doubt most, and a caused share for every channel from the read.

Step 1: Line the claims up against the store

Pull each platform's reported purchase value for the same dates, and put the store total under them. Google's page on modelled conversions explains part of the gap. Where Google cannot observe the link between an ad interaction and a sale, it predicts one. The modelling decides whether a Google ad led to the conversion, not whether the conversion happened. It adds claims without adding orders.

Step 2: Download the paths report

In GA4, open Advertising, then Key event attribution paths under the Key events menu. Select the purchase key event, set the date range to at least 12 months and download it through Share this report, the route Google documents. The report holds data from 14 June 2021 onwards. What to check in the file before using it is covered in the GA4 export how-to.

Step 3: Rebuild last-click in a sheet

Give each path's purchase revenue to its last non-direct touchpoint. That is GA4's paid and organic last click rule, and a path made only of direct visits stays Direct, per Google's attribution overview. Sum by channel. This is the baseline every channel is judged against. It costs an afternoon, not a licence.

Step 4: Anchor one channel with a counterfactual

Incremental revenue needs a "without" number. No report contains one. The cheapest clean source is a holdout: pause the channel in some regions, keep it in others, compare. The full method is in the geo holdout how-to.

For example, the regions that kept the channel booked €80,000 in a four-week window. The held-out regions, scaled to the same size from their share before the test, point to €72,000 without it. Incremental revenue is €80,000 minus €72,000, so €8,000. With €4,000 of spend in those regions, incremental ROAS is 8,000 / 4,000 = 2.0, the same formula as the incremental ROAS guide. One channel, one number, four weeks.

Step 5: Take the free first finding

Drop the CSV from step 2 on the start page. It shows the channels hiding behind your Direct traffic. The privacy policy states that this free preview reads the export in your browser and does not upload it.

Step 6: Run the full read for every channel

The full read is €99 once, excluding VAT, refundable within 30 days, per the pricing page (checked on 27 October 2026). For each channel it returns the engine's share of credit after Direct is split back and last-click with Direct left out. It adds a data-health score and a next step, as the machine-readable pricing page lists. To speak in euros, apply each share to the purchase revenue in the same export: for example, a 19% engine share of €200,000 is €38,000 (0.19 x 200,000). The read's receipts check every figure against your export, per how it works. The holdout in step 4 is the cleaner answer for one channel. The read covers every channel, without switching anything off.

Step 7: Ask follow-up questions with an agent, then check them

On Pro, a chatbot answers ad-hoc questions over your own attribution data, per the pricing page. The €99 read has no chat, per the feature table. Ask it which channels the engine credits above last-click, and by how many points. Before any answer goes into a budget note, a person finds the same figure in the read's own table. The privacy policy says data may go to OpenAI, Anthropic, Google and PublicAI for real-time inference only, with no training on it. Check that against your own data policy.

Step 8: Move budget by the read's rules

The agents page sets them out. Where engine and last-click sit within 25% of each other, hold. Under 1% on both, the channel is too small to act on. With data health under 90, move budget in steps. And test any verdict by changing spend a little in one region, then comparing revenue after the days the read names.

Mistakes that inflate the number

  • Reading the Conversions column as incremental. Google's own modelling page calls modelled figures predicted attributed conversions.
  • Adding credit from two models. Each shares out the same total, so summing them double counts.
  • Acting on a tiny channel. Under 1% of credit on both methods gets no verdict, per the how-it-works page, and that is the right answer for it.

The default on offer is each platform's own column, and the gaps in it are filled by the seller of the clicks. Google's modelling page gives fuller data for automated bidding as one purpose. So the estimate that completes this week's report also shapes what you pay next week.

Where to start

Free first: steps 1 and 3 need only a spreadsheet, and they already show how much of the platform total is double counting. Causality Engine, which I founded, does the rest from the same file. The first finding is free on the start page. The full read is €99 once on the pricing page (checked on 27 October 2026), and Pro at €299 a month adds automated GA4 ingestion. The product itself is described in the Causality Engine entry and walked through in how to use Causality Engine.

FAQ

Is incremental revenue the same as attributed revenue?

No. Attributed revenue is a share of sales that happened, handed out by a rule or a model. Incremental revenue is the part that would not have happened without the channel, the definition on the incremental ROAS guide.

Can GA4 alone give me incremental revenue?

Not directly. GA4's models split credit for key events, with fractional credit summing to 1.0 per key event, per Google's paths help page. A holdout or a causal read is what supplies the "without" side.

How much history does the read need?

There is no minimum. The assistants page says the read runs on whatever GA4 history you export, and 12 months or more is what the how-it-works page recommends.

TAGS
Incremental RevenueCausality EngineGA4Attribution PathsIncrementalityShopify

ABOUT THE AUTHOR

I am Joris van Huët, an enterprise interim CMO. 15+ years, 50+ organizations, including ING, P&G, Nestlé, BNP Paribas, WeTransfer and Vinted. I take on innovation projects (venture building, design sprints), agentic marketing (setting up and running AI agents) and hands-on multi-channel work. See the track record.

I wrote and published this with AI assistance, and I answer for it. Claims about my own experience are limited to the track record above, and a statistic links to its source or is labelled as an example. I sell interim and fractional CMO work, which is why this site exists. How this site is written.

Senior marketing execution

A senior operator doing the work: campaigns, channels, CRM and AI agents, live from day one.