Skip to main content

GA4 Attribution Modeling

💎Premium Feature

This feature is exclusive for Premium users!

The GA4 Attribution Modeling module turns raw GA4 events into multi-touch attribution: it reconstructs each user's full path to conversion and distributes conversion credit across every channel that contributed - not just the last click. Standard GA4 reporting leans on last- and last-non-direct-click; this module lets you compare first-touch, last-touch, linear, position-based, time-decay and participation models side by side, on your own data, in BigQuery.

How it works​

The module is a four-stage pipeline:

  1. Touchpoints - a flat, one-row-per-touch stream built from your GA4 tables: traffic touches (where a visit came from) and conversion touches (the events you care about). Two modes control how traffic touches are counted - see Touchpoints & journeys.
  2. Journeys (ga4_attribution_journeys) - touches grouped per user into ordered journeys, each bounded by a closing conversion, an inactivity gap, or a lookback cutoff. Touches and conversions are stored as nested arrays alongside summary columns.
  3. Models (ga4_attribution_models) - conversion credit apportioned across the traffic touches of each closing journey, one row per touch × model × channel, additive so it rolls up to any grain.
  4. Reports - six additive, date-partitioned tables for BI: channel chains, journey summaries, channel assists, channel transitions (Sankey), conversion lag and micro-conversion lift.

Key features​

  • Six attribution models including an opt-in participation model - compared on identical journeys. See Attribution models.
  • Two touchpoint modes - one traffic touch per session, or one per intra-session traffic-source change.
  • Flexible conversions - structured event/parameter filters or open SQL; any event can be a conversion, and a subset can close journeys.
  • Micro-conversions - non-closing conversions ride along in journeys and get their own lift report.
  • Custom dimensions & metrics and configurable channel grouping flow through to the reports.
  • Additive by design - reports store counts and SUM numerators so every rate and average stays correct at any grain. See the additivity principle.

Prerequisites​

  • The ga4 module must be enabled (this module depends on it).
  • The module ships disabled (enabled: false) - opt in via the custom config.
  • Define your conversions and set journey.closing_conversions to populate ga4_attribution_models and the reports. With no closing conversions, journeys never close and the models table is empty.

See Configuration for the full config reference and Output tables for every table's granularity and columns.