GA4 attribution models and lookback windows
last verified · against GA4 attribution docs as of 2026-07
Reference card for GA4 attribution models and lookback windows: the three reporting models, DDA fractional credit, lookback defaults, and BigQuery source fields.
What this is
In GA4, attribution is the act of assigning credit for key events to the ads, clicks, and other factors along a user’s path to completing the action, and an attribution model is the rule, set of rules, or data-driven algorithm that determines how that credit is assigned to touchpoints. This card covers the three surviving reporting models, the lookback (conversion) windows and their defaults, the opposite retroactivity of those two settings, what the reporting model does and does not affect, and the BigQuery source fields used to reconcile modeled reports against raw data.
The three reporting models
GA4 offers exactly three attribution models in reporting. First click, linear, time decay, and position-based were removed and are no longer available (see Gotchas).
| Reporting model | Credit rule | Admin API enum |
|---|---|---|
| Data-driven attribution (DDA) — property default | Machine learning distributes credit across touchpoints for each key event, evaluating both converting and non-converting paths. Produces fractional credit; the fractions on a path sum to 1.0. Conversions may be re-attributed for up to 7 days. | PAID_AND_ORGANIC_CHANNELS_DATA_DRIVEN |
| Paid and organic last click | 100% of the key-event value to the last channel the customer clicked through before converting. | PAID_AND_ORGANIC_CHANNELS_LAST_CLICK |
| Google paid channels last click | 100% to the last Google Ads (Google Paid) channel clicked; falls back to paid and organic last click when there was no Google Ads interaction on the path. | GOOGLE_PAID_CHANNELS_LAST_CLICK |
- Direct exclusion (all models). Every model excludes direct visits from receiving credit, unless the path to the key event consists entirely of direct visits (last-non-direct behavior).
- Per-key-event eligibility. DDA eligibility is determined per conversion type from available data, so DDA may apply to some key events and last-click to others.
DDA factors (illustrative, not exhaustive)
The data-driven model evaluates factors including the following. Google does not publish the full model or its weights; treat this list as illustrative.
| Factor | Notes |
|---|---|
| Time between the ad interaction and the key event | |
| Device type | |
| Ad-interaction type | |
| Exposure order | Sequence of touchpoints on the path |
| Creative assets |
Lookback (conversion) windows
The lookback window determines how far back in time a touchpoint is eligible for attribution credit. It applies to all attribution models and all conversion types and also affects session attribution.
| Key-event type | Default | Alternatives | Admin API enum values |
|---|---|---|---|
Acquisition (first_open, first_visit) |
30 days | 7 days | ACQUISITION_CONVERSION_EVENT_LOOKBACK_WINDOW_30_DAYS, ..._7_DAYS |
| All other key events | 90 days | 30 or 60 days | OTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_90_DAYS, ..._60_DAYS, ..._30_DAYS |
| Engaged-view key events | 3 days | not documented | — |
Retroactivity: the two settings behave oppositely
| Setting changed | Scope of effect | Retroactive? |
|---|---|---|
| Reporting attribution model | Historical and future data (reporting-side recalculation) | Yes |
| Lookback (conversion) window | Going forward only; reflected in all reports in the property | No |
Treat model changes as safe to compare all-time. Treat a lookback-window change as a forward-only break point: annotate the change date and do not compare pre- and post-change windows as like-for-like.
What the reporting model affects
| Affected by the reporting model | Not affected |
|---|---|
Event-scoped traffic dimensions: Session source, Session medium, Session campaign, Session default channel group |
User-scoped and session-scoped traffic dimensions |
| All key-event reports and explorations that use those event-scoped dimensions | — |
| Conversion reports of any linked Firebase projects | — |
- The model applies property-wide, and can also be set per key event via
Admin > Data display > Events > Key events attribution. Confirm this override is available in the specific property (see Verify in your property). - Changing the model affects all key events, including those imported to other products.
Ads export scope (distinct from the reporting model)
AdsWebConversionDataExportScope controls which channels are eligible to receive the conversion credit GA4 exports to Google Ads (an input to Smart Bidding). It is a separate decision from the in-report reporting model and does not change reporting numbers.
| Enum value | Meaning |
|---|---|
PAID_AND_ORGANIC_CHANNELS |
Paid and organic channels are eligible to receive exported conversion credit |
GOOGLE_PAID_CHANNELS |
Only Google paid channels are eligible |
NOT_SELECTED_YET |
Scope not yet chosen |
BigQuery source fields
BigQuery exports carry raw, unmodeled source data captured before GA4 attribution processing. These fields will not equal GA4 report attribution numbers unless you replicate the model.
| BigQuery field | Scope | Holds | Attribution applied | Use it for |
|---|---|---|---|---|
traffic_source (.name, .medium, .source) |
User | The traffic source that FIRST acquired the user; values do not change on later campaigns; not populated in intraday tables | None (first-touch snapshot) | User first-acquisition |
collected_traffic_source |
Event | Manual campaign parameters as collected with each event (UTMs, gclid, dclid, srsltid); raw and unprocessed |
None | Raw per-event debugging |
session_traffic_source_last_click |
Session | Last-click attributed session source across manual campaigns, Google Ads, DV360, CM360, SA360, and cross-channel campaigns | Last-click | Reconciling with GA4 UI session acquisition |
Verify in your property
Items the fetched official pages leave unstated, or that only third-party sources report. Confirm each in the property’s Admin UI before relying on it.
| Item | Status |
|---|---|
| DDA minimum-data threshold | The commonly cited “600 conversions in 30 days” traces to legacy Universal Analytics MCF and Google Ads docs, not the current GA4 pages. GA4 says eligibility is per conversion type from available data but publishes no numeric minimum — treat 600 as unverified for GA4 |
| DDA factor list | Described in general terms; Google does not publish the full model or weights. Treat the factors as illustrative, not exhaustive |
| Per-key-event model and lookback overrides | Availability and rollout date are not pinned to a dated announcement on the fetched pages — confirm in the property’s Admin UI |
| Engaged-view 3-day lookback | How engaged-view interacts with the standard acquisition and other windows is not deeply documented — verify if engaged-view conversions are in scope |
session_traffic_source_last_click add date |
The field’s addition date (reported as July 17, 2024) comes from third-party sources; the official schema page confirms the field but not the date |
Gotchas
- Report shows decimal key events like 0.42 that do not sum to whole numbers. Cause: data-driven attribution distributes fractional credit across touchpoints, and each path’s fractions sum to 1.0, so per-channel totals are non-integer by design. Fix: expect and communicate fractional credit as normal; if whole numbers are required, switch that key event to paid and organic last click via
Admin > Data display > Events > Key events attribution, accepting the loss of multi-touch modeling. - Historical numbers changed after an admin toggled a setting, but a lookback change did not backfill. Cause: changing the reporting attribution model recalculates historical and future data, while changing the lookback window applies going forward only — the two behave oppositely on retroactivity. Fix: treat model changes as retroactive and safe to compare all-time; treat lookback changes as a forward-only break point and annotate the change date.
- GA4 UI session source does not match BigQuery, and
traffic_sourceshows a stale campaign. Cause:traffic_sourceis user-level first-acquisition and never changes on later campaigns (and is absent from intraday tables), while the UI uses last-non-direct session attribution. Fix: querysession_traffic_source_last_clickfor session acquisition that reconciles with the UI; usecollected_traffic_sourceonly for raw per-event debugging andtraffic_sourceonly for user first-acquisition. - GA4 key events do not match conversions in the linked Google Ads account. Cause: the GA4 reporting model and lookback windows are independent of the ads-export scope (
AdsWebConversionDataExportScope) and of Google Ads’ own conversion window and modeling — separate datasets attributed by separate models in different platforms. Fix: do not expect column parity; align lookback windows where possible, confirm which channels the export scope allows to receive credit, and document the difference as by-design. - Cannot find first-click, linear, time-decay, or position-based models. Cause: those four were removed from GA4 as of November 2023; only data-driven, paid and organic last click, and Google paid channels last click remain. Fix: use data-driven attribution for multi-touch analysis, or replicate a contractually required legacy model in BigQuery from
session_traffic_source_last_click. - DDA is selected property-wide but some key events still show last-click. Cause: DDA eligibility is evaluated per key-event type from available data, and low-volume events may not qualify for a data-driven model. Fix: check the per-key-event model under
Admin > Data display > Events > Key events attribution; accept that sparse events fall back to last-click until they accrue enough data.
Quick recipes
# ReportingAttributionModel — the in-report modelPAID_AND_ORGANIC_CHANNELS_DATA_DRIVEN # property defaultPAID_AND_ORGANIC_CHANNELS_LAST_CLICKGOOGLE_PAID_CHANNELS_LAST_CLICK
# Acquisition lookback (first_open / first_visit)ACQUISITION_CONVERSION_EVENT_LOOKBACK_WINDOW_30_DAYS # defaultACQUISITION_CONVERSION_EVENT_LOOKBACK_WINDOW_7_DAYS
# Other key-event lookbackOTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_90_DAYS # defaultOTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_60_DAYSOTHER_CONVERSION_EVENT_LOOKBACK_WINDOW_30_DAYS
# AdsWebConversionDataExportScope — credit exported to Google Ads (separate from reporting)PAID_AND_ORGANIC_CHANNELSGOOGLE_PAID_CHANNELSNOT_SELECTED_YET-- session_traffic_source_last_click reconciles with GA4 UI session acquisition:-- last-click across manual, Google Ads, DV360, CM360, SA360, and cross-channel.SELECT session_traffic_source_last_click, -- last-click attributed session source COUNT(*) AS sessionsFROM `project.analytics_123456.events_*`WHERE _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))GROUP BY 1ORDER BY sessions DESC;-- traffic_source = the campaign that FIRST acquired the user.-- Immutable (does not change on later campaigns) and absent from intraday tables.SELECT user_pseudo_id, traffic_source.source AS first_source, traffic_source.medium AS first_medium, traffic_source.name AS first_campaignFROM `project.analytics_123456.events_*`WHERE _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))GROUP BY 1, 2, 3, 4;-- collected_traffic_source = raw, unattributed campaign params captured per event.SELECT event_timestamp, collected_traffic_source.gclid AS gclid, collected_traffic_source.dclid AS dclid, collected_traffic_source.srsltid AS srsltidFROM `project.analytics_123456.events_*`WHERE _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)) AND collected_traffic_source.gclid IS NOT NULL;-- Why the GA4 UI session source differs from a user's first touch:-- traffic_source is USER first-acquisition (immutable);-- session_traffic_source_last_click is per-session last-click (matches the UI).SELECT user_pseudo_id, traffic_source.source AS user_first_source, session_traffic_source_last_click AS session_last_clickFROM `project.analytics_123456.events_*`WHERE _TABLE_SUFFIX = FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))LIMIT 100;Related
Sources
- GA4 Get started with attribution (read 2026-07-20)
- GA4 Select attribution settings (model types) (read 2026-07-20)
- GA4 Change the key event lookback window (read 2026-07-20)
- GA4 Change the reporting attribution model for key events (read 2026-07-20)
- AttributionSettings — Google Analytics Admin API v1alpha (read 2026-07-20)
- GA4 BigQuery Export schema (read 2026-07-20)
Changelog
- — Initial version, verified against official documentation.