Skip to content
trackrift

Documentation

Platform

Attribution models

Touchpoints, model math, reporting, and implementation implications.

AI brief: UTMs create touchpoints per landing (not persisted client-side). Click IDs persisted last-touch. Models: first, last, linear, time_decay, position_based computed server-side from touchpoint table. inbound_link_id for short URLs /r/slug.

Trackrift records touchpoints when a user lands with UTMs, click IDs, or an inbound marketing link. On conversion (purchase, sales_closed), multiple attribution models run in parallel — you compare credit allocation instead of trusting one black-box score.

Model reference

ModelCredit ruleBest for
First touch100% to first UTM touchpointDemand gen, brand awareness ROI
Last touch100% to last UTM before conversionPerformance marketing, direct response
LinearEqual split across all touchpointsFull-funnel visibility
Time decayExponential decay — recent winsLong B2B cycles
Position based40% first, 40% last, 20% middleBalanced exec reporting

Example journey

journey.txt
Day 1: Google Ads → landing (?utm_source=google&gclid=…)
Day 3: Newsletter → landing (?utm_source=email)
Day 7: Direct → purchase ($500)

First touch:  100% Google
Last touch:   100% Direct (no UTM — may show as direct/unattributed)
Linear:       50% Google, 50% Email (direct often excluded without UTM)
Time decay:   Heavier weight on Email

Why UTMs are not persisted in the SDK

If the SDK cached the first UTM on every page_view, last-touch and linear models would break. Only click IDs persist (last-touch) for CAPI — not for UTM-based model credit.

Trackrift short URLs (/r/<slug>) append inbound_link_id to session context. Credit can tie to a specific link/campaign even without UTMs in the final URL.