Marketing Attribution for GA4: Learn how to interpret GA4 attribution models, their limits, and when to use experiments for true marketing incrementality. Move beyond last-click reporting.
Read the full article below for detailed insights and actionable strategies.
The attribution problem
One sale. Four channels. 400% credit claimed.
Reported revenue: €400 · Actual revenue: €100 · Gap: €300
How to read GA4 attribution models correctly, why they still cannot prove causation, and when to trust experiments instead.
Updated on: 2026-09-08
Last week I watched a marketing lead argue for cutting Meta because GA4's last-click report showed branded search doing most of the work. The problem was that branded search was harvesting demand created by everything upstream. Nobody in the room could say whether cutting Meta would drop revenue, because the report they trusted answered a different question than the one they were asking.
That gap sits at the center of GA4 attribution. GA4 can move past last-click by spreading conversion credit across the path. It still cannot tell you which conversions would not have happened without your marketing. Attribution measures association. Incrementality measures causation. Those are two different jobs.
The practical version: use GA4 attribution to understand observed journeys and decide where to look. Use experiments or causal models to move real budget with confidence.
What GA4 attribution actually gives you
As of September 2026, GA4's Attribution reports offer three reporting models:
- Paid and organic channels last click
- Google paid channels last click
- Data-driven attribution
If you still see guides listing first-click, linear, time-decay, and position-based as GA4 options, that content is stale. Those rule-based models were removed from the current reporting model selection.
Paid and organic channels last click assigns 100% of the key-event value to the last eligible channel the customer clicked. Direct traffic is ignored when another eligible click exists. If the path is only direct visits, direct can take the credit. It is a stable baseline, but it systematically favors whatever sits closest to conversion: branded search, remarketing, email, direct-response.
Google paid channels last click gives all credit to the last Google Ads click, falling back to paid-and-organic last click when there was no Google Ads interaction. This is not a neutral cross-channel model. Do not use it to compare Google against Meta, TikTok, email, or SEO as if all were treated equally.
Data-driven attribution (DDA) distributes credit using your property's observed data for each key event rather than a fixed rule. Google describes it as a machine-learning model trained on your historical data. This is the important part: "data-driven" does not mean "causal." DDA allocates credit across measured paths. It does not build a randomized control group. Google itself separates ordinary attribution from incremental measurement: attribution assigns credit to interactions associated with conversions, while incrementality asks whether those conversions would have happened without the ads.
Treat DDA as model-based attribution. It is better than last-click at describing observed contribution. It is not proof a channel generated incremental sales.
The scope trap that makes reports disagree with themselves
This is where most GA4 confusion lives. "Source/medium" is not one universal field. GA4 has three traffic-source scopes, and they use different attribution logic.
| Scope | What it represents | Attribution behavior |
|---|---|---|
| User-scoped | Source of the user's first arrival | Uses paid-and-organic last click; unaffected by the selected model |
| Session-scoped | Source assigned to a session | Uses paid-and-organic last click |
| Event-scoped | Source assigned to a specific event, including a key event | Uses the selected reporting model; defaults to DDA |
Google documents this directly in its explanation of traffic-source dimension scopes.
So three reports can all be technically correct and still tell different stories:
- The Acquisition report credits a user's first visit to organic search.
- A session report credits the converting session to paid social.
- An event-scoped conversion report splits purchase credit across paid social, email, and organic search using DDA.
The single most dangerous error I see is someone comparing a first-user acquisition number against an event-level attribution number as if they answer the same question. They do not. Name the scope in every analysis: first-user source, session source, or event-scoped key-event attribution. If you skip that label, half your budget arguments are built on a category mistake.
Lookback windows quietly change the answer
The key-event lookback window sets how far back a touchpoint stays eligible for credit. For most key events the default is 90 days, with 30- and 60-day alternatives. Acquisition events like first_open and first_visit default to 30 days and can go to 7.
Consider a customer who sees a paid social ad on January 1, clicks an email on January 20, and buys on February 15.
- With a 30-day window ending February 15, the January 1 touch falls outside.
- With a 90-day window, both touches may be eligible.
The output changes without any change in customer behavior. Attribution reports also use event time, so touchpoints inside the lookback window may sit before your selected report date range.
Before you interpret anything, write down the terms of the analysis:
- Key event name
- Revenue or value definition
- Lookback window
- Reporting timezone
- Channel grouping version
- Attribution model
- Scope (user, session, or event)
If two people can pull the "same" report and get different numbers, one of these six is undocumented.
Why last-click misleads more than people admit
Last-click survives because it is simple, cheap to compute, stable, and compatible with ad-platform dashboards. It gives every conversion one tidy owner. None of that makes it correct.
Its real problem is selection bias, not just that it ignores earlier touches:
- High-intent users search for your brand, click your email, and return directly anyway.
- Retargeting targets people who already showed intent.
- Branded search harvests demand created elsewhere.
- Email often lands the last click because the customer was already close.
Proximity to conversion is not the same as contribution to conversion. That single line would have saved the meeting I described at the top.
There is concrete evidence here. A study across 2,226 Meta advertising experiments found that standard seven-day last-click attribution scored an out-of-sample R² of 0.19 against experimentally measured incremental conversions per dollar. An experiment-calibrated method reached R² of 0.88, and last-click decisions disagreed with randomized-test decisions in roughly 12 to 20% of campaigns. That is Meta experiment data, not a universal figure for every GA4 property. But it tells you the direction of the error: last-click and true incrementality often point at different channels.
A working example
Take an illustrative path:
Day 1: Paid social click Day 5: Organic search visit Day 9: Email click Day 10: Direct visit and purchase
Under paid-and-organic last click, direct is ignored and email takes 100%.
Under Google paid channels last click, with no Google Ads interaction, GA4 falls back to paid-and-organic last click, so email still wins.
Under DDA, GA4 may spread fractional credit across paid social, organic, and email based on observed data. The weights are not fixed, so I will not invent them.
None of these answers the real question: would this person have purchased without the paid social exposure? The path cannot tell you. They may have been ready to buy, and email simply caught them at the door.
A methodology for moving past last-click
Step 1: Define the decision first
- "Where did converting users come from?" GA4 acquisition and path reporting is fine.
- "Which channels show up across journeys?" Use conversion paths and event-scoped attribution.
- "Which campaign gets more budget?" Attribution is directional. Use an experiment or a calibrated causal model.
- "Did this campaign cause extra purchases?" Use a holdout, geo experiment, or an experiment-validated model.
Step 2: Fix the data before trusting any model
A sophisticated model on bad data just produces a more confident wrong answer. Check:
- UTMs present and consistent
- Paid vs organic classification correct
- Cross-domain tracking configured
- Referral exclusions and payment-provider referrals handled
- Ad platforms linked
- Purchase values, refunds, tax, and currency consistent
- No duplicate purchase events
- The key event is a real business outcome, not a cheap microconversion
- Offline, phone, and CRM sales imported or explicitly excluded
Step 3: Use the right GA4 view, then compare models as a diagnostic
Use acquisition reports for first-user questions, attribution reports for event-level credit, key-event paths for sequences, and model comparison to see how reported value moves. For raw analysis, export events to BigQuery, but know that some session-level attribution used in the GA4 interface cannot be fully reconstructed from the export.
A comparison table is a good starting diagnostic. These numbers are illustrative:
| Channel | Last-click revenue | DDA revenue | Difference | Question to investigate |
|---|---|---|---|---|
| Paid social | €20,000 | €31,000 | +€11,000 | Assists earlier, or selection effects in DDA |
| Branded search | €45,000 | €28,000 | −€17,000 | Likely harvesting demand from elsewhere |
| €30,000 | €25,000 | −€5,000 | Closing users already likely to buy | |
| Organic search | €15,000 | €26,000 | +€11,000 | Earlier discovery or research |
Treat a large gap between models as a question for validation, not a verdict that DDA is right.
Step 4: Add real incrementality evidence
In rough order of strength:
- User-level randomized holdout
- Geo experiment
- Platform lift study (understand its population and outcome definition)
- Time-series or marketing mix modeling for aggregate effects
- Experiment-calibrated modeling to extend learning to untested campaigns
The sensible hierarchy: GA4 for observed-path diagnostics, experiments for causal ground truth, causal or aggregate models to extend that learning, and reconciliation instead of one universal number.
How to read the models together
A quick interpretation frame that has held up for me:
- Last-click high, DDA high, experiment high: strong channel, watch profitability and saturation.
- Last-click high, DDA lower, experiment low: demand capture or retargeting bias.
- Last-click low, DDA high, experiment high: real upper-funnel or assist value.
- Last-click low, DDA high, experiment inconclusive: a hypothesis, not a budget call.
- Everything low, experiment high: probably a tracking, identity, view-through, or classification problem.
- Everything high, experiment low: probably selection bias or a weak experiment.
The output of a good analysis is rarely one winning channel. It is estimated incremental revenue, an uncertainty range, incremental ROAS, saturation signals, the gap between reported and causal results, and a set of stated assumptions.
Common GA4 misconceptions worth killing
- "DDA proves causation." No. It allocates credit from observed data. Incrementality needs a counterfactual.
- "Direct always gets credit." No. Paid-and-organic last click ignores direct when another eligible click exists.
- "Changing the model changes what happened." It changes reported credit, not the number of purchases.
- "Attributed ROAS equals incremental ROAS." No. One is model-dependent; the other estimates additional revenue caused.
- "Every report uses the selected model." No. User- and session-scoped dimensions use paid-and-organic last click.
- "GA4 and Google Ads must match." No. GA4 uses last click for Google Ads conversions, and Google recommends paid-and-organic last click when comparing the two.
- "BigQuery is a perfect copy of every report." No. Some interface calculations cannot be reconstructed from the export.
- "More granular is always better." No. GA4 applies data thresholds on small slices and you cannot adjust them.
GA4 differing from your ad platforms is expected. Different models, windows, timezones, conversion definitions, dedup rules, and identity assumptions all pull the numbers apart. Do not pick the dashboard with the biggest number. Write a measurement contract: for this decision, we count this key event, value it this way, within this window, using this scope and model, and we compare it against this incrementality method.
Where a causal tool fits
If you want the causal side without running full experiments in-house, this is the category Causality Engine sits in. You upload a historical GA4 export and get a per-channel view aimed at incremental revenue rather than the channel that happened to be present at the last click. Its causal-attribution output covers paid, organic, email, brand, and retention, and reports incremental contribution with confidence intervals. Pricing runs a one-time €99 read and a €299 per month continuous option, with platform-reported versus causal comparison and budget-reallocation suggestions.
I would frame it honestly: it is a causal model estimate whose reliability depends on data quality, model assumptions, and validation against experiments. That is a genuinely different question than last-click answers, which is the whole reason to look at it. But a model estimate is not the same as a randomized test, and any vendor's proprietary method should be treated as an estimate to validate, not a settled truth. Used that way, a causal read is the fastest way for a GA4-and-Shopify brand to separate the channels that create demand from the ones that just catch it.
FAQ
Does GA4 data-driven attribution measure incrementality?
No. DDA distributes credit across observed interactions using your property's data. It is more flexible than last-click, but it does not create a control group or estimate a counterfactual. For incrementality you need an experiment or a model validated against one.
Why do my GA4 Acquisition and Attribution reports show different channels?
Because they use different scopes. Acquisition reports lean on user- and session-scoped sources, which use paid-and-organic last click. Attribution reports use event-scoped credit under your selected model, which defaults to DDA. Neither is broken. They answer different questions, so always label the scope.
Should I stop using last-click entirely?
Not necessarily. Last-click is a useful, stable baseline and it matches many ad dashboards, which makes reconciliation easier. The mistake is treating it as causal. Keep it for routine reporting, and bring in causal methods before moving significant budget.
What is the difference between attributed ROAS and incremental ROAS?
Attributed ROAS is revenue assigned to a channel under a chosen attribution model, divided by cost. Incremental ROAS is the additional revenue that would not have occurred without the channel, divided by incremental cost. A channel can look efficient on attributed ROAS and generate little incremental profit.
Can I reproduce GA4's attribution numbers from the BigQuery export?
Partly. The export gives you raw events and traffic-attribution fields, which is enough for most custom analysis. But Google documents that some session-level attribution used inside the GA4 interface is not fully reproducible from the export, so expect small differences rather than an exact match.
Get attribution insights in your inbox
One email per week. No spam. Unsubscribe anytime.
Key Terms in This Article
Attribution Model
An Attribution Model defines how credit for conversions is assigned to marketing touchpoints. It dictates how marketing channels receive credit for sales.
Attribution Report
Attribution Report shows which touchpoints or channels receive credit for a conversion. It identifies which campaigns drive desired actions.
Confidence Interval
Confidence Interval is a statistical range of values that likely contains the true value of a metric. In marketing analytics, it quantifies uncertainty around estimates, indicating the precision of an outcome or causal effect.
Conversion Path
Conversion Path is the sequence of interactions a user has with various touchpoints before completing a desired action.
Counterfactual
Counterfactual is a hypothetical outcome that would have occurred if a subject had received a different treatment.
Direct Traffic
Direct Traffic refers to website visitors who arrive by typing the URL directly into their browser or through bookmarks. They do not come from search engines or referrals.
Incrementality
Incrementality measures the true causal impact of a marketing campaign. It quantifies the additional conversions or revenue directly from that activity.
Marketing Mix Modeling
Marketing Mix Modeling (MMM) is a statistical analysis that estimates the impact of marketing and advertising campaigns on sales. It quantifies each channel's contribution to sales.
Related Articles
Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.
Ready to see your real numbers?
Own the budget? Upload your GA4 export and see which channels drive incremental sales, with confidence intervals, in minutes. Have to defend it? Start with the live demo and take the read to your CFO.
Full refund if you don't see value.
Stay ahead of the attribution curve
Weekly insights on marketing attribution, incrementality testing, and data-driven growth. Written for the person who owns the budget and the person who has to defend it.
No spam. Unsubscribe anytime. We respect your data.