Amplitude changed a quiet but consequential default in July. As of Browser SDK 2.45.0 and the matching GTM template, attribution parameters — UTM source, medium, campaign, and referrer — now attach to every event as event properties by default, not just as user properties captured once at session start. Previously, attribution in Amplitude was largely a first-touch or last-touch property fixed on the user record; now every single event carries the attribution context that was active at the moment it fired.
That sounds like a small plumbing change, but it changes what questions your data can answer. A user-level attribution property can only ever tell you where someone came from once, however you’ve configured it to update. Per-event attribution lets you see that a user’s signup event fired under one UTM campaign while their upgrade event, three weeks later after clicking a retargeting ad, fired under a different one — the kind of multi-touch detail that used to require a dedicated attribution tool bolted on top of product analytics. The catch is that if your instrumentation, dashboards, or downstream warehouse jobs were built assuming attribution is a stable user property, this default flip introduces per-event variance you weren’t expecting, and event payloads are now measurably larger across the board.
Data Points to Track
- UTM source, medium, and campaign as event-level properties on every tracked event, not just session-start or signup events, now that the SDK attaches them by default
- Referrer URL, captured per event alongside the UTM set, useful for distinguishing paid campaigns from organic referrals that happen to share a campaign tag
- Attribution touch sequence per user, reconstructed from the per-event properties across a user’s full event history, rather than relying on a single stored “first touch” or “last touch” field
- Event payload size, tracked as an operational metric now that every event carries additional attribution fields — this matters directly for ingestion cost under volume-based pricing
- Attribution consistency within a session, flagging cases where UTM parameters change mid-session (a strong signal of tab reuse, deep-linking, or a tracking parameter bug rather than a genuine new touch)
Setup Steps
- Check your current Browser SDK and GTM template version before assuming this behaviour is live — the default only applies from 2.45.0 and GTM template 5d7e5 onward, and older integrations won’t see per-event attribution until upgraded.
- Audit any dashboard or downstream model that reads attribution as a fixed user property, since those will now sit alongside a richer per-event signal that tells a different, more accurate story and can disagree with the older field.
- Decide explicitly how to reconcile multi-touch sequences, whether that’s last-non-direct-touch, full path, or a weighted model — the raw data now supports all three, but nothing picks one for you.
- Monitor event payload size and monthly event volume together after the upgrade, since Amplitude’s own move to volume-based pricing this year means bigger, attribution-laden events have a direct cost impact, not just a storage one.
- Backfill or clearly flag the cutover date in any attribution reporting, so events before the upgrade — which lack per-event attribution — aren’t silently compared against events after it as if the data were consistent throughout.
Actionable Insights
With per-event attribution in place, a campaign that looked like a poor performer under last-touch reporting can turn out to be a strong assist channel once you can see it showing up earlier in a user’s event sequence rather than only at signup. A mismatch between the old user-level attribution field and the new per-event data on the same user is itself informative — it usually means the user’s channel changed between their first session and a later one, which a single fixed property could never have shown. And tracking payload size as its own metric turns an invisible SDK default change into a line item you can actually manage, instead of discovering it three weeks later as an unexplained jump in ingestion cost.
Related Resources
Need help tracking this in your app?
Our team sets up analytics pipelines for mobile and web teams every day. Talk to us and get your first events flowing in under an hour.
Talk to an expert