All resources
GuideUpdated September 8, 2026

UTM campaign tracking and channel attribution, explained

A UTM tag is three or four words appended to a link: utm_source=google, utm_medium=cpc, utm_campaign=summer-sale. On its own it does not tell you a channel, a return on spend, or a customer. It tells you what someone typed into a link builder. Everything useful comes after: reading that tag consistently, turning it into a channel, and tying it to a real customer, not just a click.

What a UTM tag actually records

Three parameters carry almost all of the useful signal:

  • utm_source: where the click came from (google, facebook, klaviyo, an affiliate's domain).
  • utm_medium: the kind of traffic it was (cpc, email, social, or nothing at all).
  • utm_campaign: the specific push that sent it (summer-sale, back-to-school, q3-lookalike).

Source and medium decide the channel. Campaign decides which specific effort inside that channel gets the credit. A store can run five campaigns through Meta paid social in a month; source and medium alone can't tell them apart, only the campaign tag can.

Why the same channel gets counted twice

UTM parameters are free text, typed by whoever built the link. One person tags a Meta campaign fb / paid, another tags the next one facebook / cpc. Read literally, a report sees two different sources. Classification is what turns raw text into one consistent channel: Paid Social, Paid Search, Organic Search, Organic Social, Email, Referral or Direct, based on the pattern in source and medium, not the exact string someone chose.

Without it, the same channel fragments across a dozen near-identical labels, and no report agrees with the next one you pull.

Why Direct is usually a tagging gap, not real traffic

Any click with no UTM parameters at all collapses into Direct or Organic by default: a bookmark, an app link, or an ad or email someone forgot to tag. A Direct bucket that looks larger than it should almost never means people are typing your URL from memory in that volume. It means a campaign somewhere is untagged. The fix lives on the ad or the email, not in the attribution logic.

First-touch, last-touch, and why picking one hides the other

A single conversion has (at least) two moments worth crediting: the touch that first brought the customer to your site, and the touch that closed the sale. Last-click flatters whatever sits closest to the purchase, usually brand search or a cart-abandon email. First-touch flatters whatever fills the top of the funnel. Neither is more "correct"; they answer different questions. A campaign that looks weak on last-click can be the one quietly starting every relationship that closes weeks later on branded search.

The credit belongs on the customer, not just in a report

A channel-level report answers "which bucket performed." It does not answer "who did this campaign actually bring me, and are they still buying." Attaching the classified channel and campaign to the customer's own profile, the moment they convert, closes that gap: you can open any customer and see exactly what acquired them, instead of cross-referencing a report and hoping the timing lines up.

UTM tags are the raw material. A channel your reports agree on, and a customer profile that remembers where it came from, are what make that raw material worth collecting in the first place.

Frequently asked questions

Why do two people tag the same channel differently?

utm_source and utm_medium are free text: one person writes "fb" and "paid", another writes "facebook" and "cpc" for the same Meta campaign. Read literally, those look like two different channels. Classification groups them by what they actually are, not by what someone typed.

Why does Direct traffic look larger than expected?

Any link without UTM parameters, or any paid campaign someone forgot to tag, lands in Direct or Organic by default. A large Direct bucket is usually a tagging gap, not a wave of people typing your URL from memory. The fix is UTM tags on the ads and emails driving traffic, not a change to how attribution is computed.

Should I trust first-click or last-click attribution?

Neither is "the truth" on its own. Last-click credits whatever sat closest to the purchase, often brand search or email, which flatters the bottom of the funnel. First-click credits what originally brought the customer in, which flatters the top. Reading both side by side, per campaign, tells you more than picking one model and trusting it blindly.

Own your customer data, end to end.

SetRoasFlow unifies every visitor into one first-party profile and feeds it to every channel you run. Server-side, on your own domain.

Sign up now