Every platform claims it.
Which one caused it?
For ecommerce brands on GA4, on any store platform. Upload your GA4 export and see what each channel caused, as opposed to what it claimed, with a data-health score on every channel, in 1–2 minutes.
Full refund within 30 days, no questions asked. You keep the read. Prices exclude VAT.
- Watches a YouTube reviewLast-click credit: 0%
- Searches the product on GoogleLast-click credit: 0%
- Joins the email listLast-click credit: 0%
- Clicks a Meta retargeting ad and buysLast-click credit: 100%
Last-click pays the final step and nothing else. The causal read asks what each step caused.
Why ecommerce attribution is broken by default. Dashboards measure presence. Budgets need cause.
Meta, Google and TikTok each grade their own homework. Click an ad once and the platform can claim the sale for days, even when email, organic search or another channel closed it. Add the platforms' numbers together and they can come to more than your store sold.
The channels that create demand (video, TikTok, prospecting) start journeys and look weak. The channels that harvest it (retargeting, branded search, email) close journeys and look unbeatable. Move the creators' budget to the harvesters and the funnel dries up.
Self-attribution inflation
Each platform credits itself under its own rules, so the same order can appear in three reports. Together their totals can exceed your actual revenue.
Cross-device, cookieless journeys
Customers discover on a phone, compare on a laptop and buy days later. Privacy changes broke the tracking thread pixels depend on, and last-click fills the gap with whatever touched the sale last.
Every dashboard tells a different story
GA4, Meta, Google Ads and your store report different revenue for the same day. Teams argue about whose report is right instead of deciding where the next euro goes.
The causal read asks a different question. What would sales have been without it?
Last-click asks who touched the sale last. The causal read estimates, from the GA4 history you already have, what sales would have been without each channel: incremental sales are sales with the channel minus sales without it.
The math, as an illustration:
- Retargeting costs €10,000 a month. Last-click credits it with €50,000 in sales: 5.0x, the best line on the report.
- Pause it and total sales fall by €12,000 a month. Most of those buyers had already decided and come back through email, search or direct.
- So retargeting caused €12,000 on €10,000 of spend: 1.2x.
Last-click said scale it. The counterfactual says it barely pays for itself, and the prospecting that found those buyers deserves the budget. The read can show the opposite too, for any channel.
Illustrative round numbers, not a customer result. Your own read shows your channels.
What it answers for ecommerce brands
- Which channels create demand, and which harvest demand others created?
- Which channels collect credit for sales they did not cause?
- Where does the next euro do the most?
Every channel gets a data-health score from 0 to 100 and a next step. A channel under 1% of credit on both methods is called too small to act on, not guessed at. How the read works.
This is what €99 buys. Your read, channel by channel.
Direct split back to the channels that sent those buyers. Last-click next to the engine. A data-health score and a next step for every channel.
31%
of last-click credit sat on Direct.
Direct is not a channel. The read splits it back.
Where Direct’s credit goes: Organic Search +9, Email +8, Paid Search +6, Paid Social +4, Cross-network +4
- Paid SearchAgreesLast-click, Direct left out: 34%Engine, after the split: 31%
Data health 96
Within 25% of last-click. Hold.
- Paid SocialEngine lowerLast-click, Direct left out: 22%Engine, after the split: 14%
Data health 93
Cut spend a little in one region. Compare revenue after 14 days.
- Organic SearchAgreesLast-click, Direct left out: 18%Engine, after the split: 21%
Data health 97
Within 25% of last-click. Hold.
- EmailEngine higherLast-click, Direct left out: 11%Engine, after the split: 19%
Data health 91
Put a little more effort here. Judge it after 21 days.
- Cross-networkEngine higherLast-click, Direct left out: 9%Engine, after the split: 12.4%
Data health 81
Raise spend a little in one region. Compare revenue after 21 days. Data health under 90: move in steps.
- UnassignedFix taggingLast-click, Direct left out: 5.4%Engine, after the split: 2.1%
Data health n/a
No tracked source. Tag every link with a UTM source and medium, then run a new read.
- ReferralToo smallLast-click, Direct left out: 0.6%Engine, after the split: 0.5%
Data health 88
Under 1% on both methods. Too small to act on.
Round numbers for illustration, not a customer’s read. Your read shows your own channels from your GA4 export, with your common paths to purchase and receipts that check every number against the file.
Named results. Published with each brand's sign-off.
Three Dutch fashion brands so far. The read works the same way on any GA4 export, whatever you sell.
- Me Gorgeous+30% revenue lift, 2025Dutch fashion DTC. Reallocated ad spend on the causal read.
- Twinkels+60% revenue lift, 2024Dutch fashion DTC. The read surfaced a Meta return-rate problem the ROAS report could not see.
- The Two Sisters+60% revenue lift, 2024Dutch womenswear DTC. Last-click said cut Pinterest; the causal read kept it live.
Ecommerce attribution questions, answered.
Why is my Meta ROAS higher than what Shopify shows for my ecommerce brand?
Because Meta grades its own homework. Click one ad and Meta can claim the sale for days afterwards, including sales that email, organic search or another channel closed. Add up the platforms' reported revenue and it can exceed what your store actually sold. A causal read estimates what Meta caused, revenue with Meta minus revenue without it, on your own GA4 data.Do I need to install a pixel or change my Shopify theme to get causal attribution?
No. Causality Engine runs on a GA4 export you upload: no pixel, no SDK, no code on your storefront, no engineering ticket. Setup takes about 2 minutes and the read arrives in 1–2 minutes. Because it works on history you already have, it also reads campaigns that have already ended.Which of my channels are incremental and which just harvest demand?
Demand creators (YouTube, TikTok, prospecting) start journeys and look weak on dashboards because other channels convert later. Demand harvesters (retargeting, branded search, email) close journeys and look unbeatable. A causal read separates the two by what each channel caused, set next to what last-click gave it, with a data-health score on every channel.How is this different from Triple Whale, Northbeam, or another attribution dashboard?
Triple Whale and Northbeam are multi-touch attribution tools that need a pixel or an integration on your store, and multi-touch divides the credit among the touches it can observe. Causality Engine asks a different question, what each channel caused, and answers it from the GA4 history you already have: no pixel, a read in 1–2 minutes, €99 once or €299 a month for Pro, no annual contract.How much data do I need for reliable causal attribution?
The €99 read runs on whatever GA4 history you export; 12 months or more reads best. Every channel gets a data-health score from 0 to 100, so you see how much weight each conclusion can bear before you move budget: under 90, move in steps. A channel under 1% on both methods is called too small to act on, not guessed at.
Keep reading. The terms and comparisons behind this page.
New to the method? Start with causal attribution or why last-click misleads.
Your platforms guess.
We run the math.
Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.
The free finding runs in your browser. Your file never leaves it. The full read is €99, refundable within 30 days, no questions asked. Prices exclude VAT.