Attribution
A conversion rarely has one cause. Someone clicks a Meta ad, comes back from a newsletter, searches your brand, and buys. Attribution decides how much of that purchase each touch gets to claim — and different models give wildly different answers from the same data.
Every touchpoint is scored on three dimensions: channel, source and campaign.
Models
Five models, applied across the n touches in a conversion path. The
conversion’s own visit is always the final touch.
Time decay is the one worth understanding: a touch seven days before the conversion carries half the weight of one on the conversion day, fourteen days carries a quarter, and so on. Shortening the half-life concentrates credit near the conversion; lengthening it flattens toward linear.
The workspace default is last-touch with a 30-day window. It’s the model most ad platforms report in, so it’s the one that reconciles most easily against what Meta or Google tells you.
Attribution window
Touches older than the window don’t participate. The default is 30 days, and
the accepted range is 1–365. A value outside it is rejected with a 422,
not silently adjusted.
Pick a window that matches your sales cycle. Too short and you drop the awareness touches that started the journey; too long and unrelated visits from months ago dilute credit for the campaign that actually worked.
Channel derivation
Before credit can be assigned, each touch needs a channel. It’s resolved by strict precedence — the first rule that produces an answer wins:
Click ID
A recognized click ID names its platform’s channel outright. gclid →
paid_search, fbclid → paid_social, and so on. This is the most
trustworthy signal available, so it beats everything below.
UTM medium
If there’s no click ID, utm_medium is mapped (see below). You told us what
this traffic is, so we believe you.
UTM medium map
An unrecognized medium becomes other — it isn’t dropped, but it also won’t
roll up with the channel you probably meant. Stick to the values above.
Email is never inferred
Email traffic is never inferred from a referrer. If you don’t tag your links
with utm_medium=email, email traffic will not appear as email — it lands in
referral or direct instead, and your newsletter looks like it drives nothing.
The reason is that webmail collapses. A click from mail.google.com shares a
registrable domain with Google search, so referrer-based inference cannot tell a
newsletter click from an organic search click. Rather than guess wrong at scale,
the pipeline refuses to guess at all.
The fix is one query string:
Many email clients also strip referrers entirely, which lands untagged clicks in
direct. Tagging is the only reliable answer.