Attribution Models: What They Explain and What They Cannot Prove
Attribution models split credit across observed journeys. Learn what GA4 offers today, how lookback windows work, and when you need an incrementality test.
7 min readBranislav Mateas
Copy post as Markdown
On this page
A GA4 report can show that paid search earned credit for 800 orders. It cannot show that those 800 orders would have disappeared without paid search.
These are two different questions. Attribution asks how to divide credit across the journeys you observed. An experiment asks what would have happened otherwise. Budget decisions usually depend on the second question.
Attribution divides credit, it does not count added sales
Attribution starts with a key event that already happened. It looks back at the touchpoints before that event and shares out the credit. In Google's own example of fractional credit, two touchpoints split one key event and their values add up to 1.0.
That sum is the limit of the method. Every credited key event gets assigned to something. The report has no row for "this person would have bought anyway."
Take a customer who already knows your shop and plans to order today. They search your brand name, click your ad and buy. The ad was in the path, so the ad can receive the credit. The report is correct about the path. It says nothing about whether the click changed the outcome.
Switching models shows the same limit. Credit moves between channels, and your number of sales stays the same.
Data-driven attribution uses machine learning on converting and non-converting paths to estimate each touchpoint's contribution.
gives 100% of the credit to the last channel clicked before the key event. Google also calls this last non-direct click, and for YouTube an engaged view counts as well.
Google paid channels last click gives 100% of the credit to the last Google Ads channel clicked. If the path has no Google Ads click, it falls back to paid and organic last click.
First click, linear, time decay and position-based models have been unavailable in GA4 since November 2023. Google Ads no longer supports them either. It moved affected conversion actions to data-driven attribution and still supports last click.
The settings sit under Admin, Data display, Events, and you need at least the Marketer role on the property. Three details matter before you change them:
It only affects event-scoped traffic dimensions, such as Source, Medium, Campaign and Default channel group. Session source and First user medium stay as they were, so two reports can legitimately disagree.
A change to the channels that can receive credit applies going forward to all linked Google Ads accounts and may affect bidding.
Data-driven attribution is a model, not a test of your campaign
Data-driven attribution is more than a fixed rule. Google says it uses a counterfactual approach that "contrasts what happened with what could have occurred," and that the models train on data from randomized controlled trials to estimate the gains from Google ad exposure.
That does not turn your attribution report into an experiment. The output is still a share of credit for key events that took place. The report shows no control group for your campaign and no measured effect with a range around it. Google uses stronger language for a different tool: its Conversion Lift page calls incrementality experiments "the way to measure the causal impact of ads."
Read data-driven numbers as estimates. Decimals are normal, because credit for one event can be split. Conversions can also be reattributed for up to 7 days, so very recent figures may still shift.
Lookback windows decide who is eligible for credit
A lookback window sets how far back a touchpoint can receive credit. It applies to all models, and GA4 gives you these options:
Acquisition key events (first_open, first_visit): 30 days by default, or 7 days.
All other key events: 90 days by default, or 30 or 60 days.
The window is an eligibility rule. It does not measure influence. If someone sees your content 120 days before buying, that touch cannot earn credit even under the longest setting for a purchase. Shorten the window to 30 days and touches from day 31 onward lose their claim too. The customer's behavior did not change. Only your rule did.
Window changes apply going forward only, while a model change rewrites history. So a comparison across the date you changed the window is not like for like. Pick a window that fits how long your customers take to decide, and note the date of any change.
A hypothetical example: 800, 510 or 120 orders
The numbers below are invented to show the logic. This is not a test result or a benchmark.
A shop gets 1,000 orders in a month at an average of EUR 50 per order. Paid search costs EUR 5,000. The journeys look like this:
Paid social, then paid search: 400 orders
Paid search only: 300 orders
Organic search only: 200 orders
Email, then paid search: 100 orders
Under last click, paid search gets 400 + 300 + 100 = 800 orders. Now apply an invented data-driven style split: 60/40 between paid social and paid search on the first path, and 50/50 between email and paid search on the last. Paid search gets 160 + 300 + 50 = 510 orders. Paid social gets 240, email 50, organic 200. The total is still 1,000.
Next month, the shop splits its regions into two matched groups, each expected to bring about 500 orders. Paid search stays on in one group and pauses in the other. The group with ads brings 500 total orders across all channels. The group without brings 440.
The difference is 60 orders for half the business. If the effect is similar across the whole shop, 60 x 2 = 120 orders a month came from paid search. Here is the same spend under each view:
iROAS means incremental return on ad spend, counting only revenue the ads added. At a 40% margin, EUR 6,000 of added revenue brings EUR 2,400, against EUR 5,000 of spend. A channel with a ROAS of 8.0 loses money in this scenario.
Only the third figure tells you what happens if you cut the budget. It says nothing about paid social, which got zero credit under last click. That needs its own test.
When to run an experiment instead
Attribution is useful for seeing which paths customers take and for comparing touchpoints inside a stable setup. Run an experiment when the decision depends on added sales:
You plan to move a meaningful share of budget between channels.
A channel mostly reaches people who already know you, such as brand search or retargeting.
A channel looks weak in last click but may start journeys that other channels finish.
Google's Conversion Lift compares a group that sees your ads with a group that does not, and reports the difference as lift. It can run on user or geographic data, and the geo version supports offline data. It is not available for all Google Ads accounts, and you need to contact your Google account representative. Without access, a regional test like the one above asks the same question. This article on incrementality and brand investment covers that approach in a wider budget context.
Measure total orders across channels, or you will miss sales that simply moved from paid to organic. Write down before you start what result would change the budget. Check your volume too, since Google notes that lift metrics depend on conversion volume and how the groups are split.
The test has a limit of its own. Google says these experiments show how ads perform "at a certain point in time," so one result is a reading, not a permanent fact. Attribution tells you where to look. An experiment tells you what changed when the ads were gone.