Beta Position Eleven is live and still being built.
Home › Writing › Analytics

UTM discipline, or why your channel report is fiction

UTM parameters are the only part of channel attribution you fully control, and they are usually the part that breaks first — not through anything sophisticated, but through inconsistent typing.

The failure

utm_source=Facebook and utm_source=facebook are two different sources. So are newsletter and Newsletter, email and e-mail, cpc and ppc.

Each variant becomes its own row. A channel that should read as one line becomes six, none of which look significant, and the total is never displayed anywhere.

Then somebody concludes email is not working, because the biggest single email row is small.

The rules that prevent it

Lowercase everything, always. No exceptions, no judgement calls. This one rule prevents most of the damage.

Fix the vocabulary. utm_medium should come from a short closed list — cpc, email, social, affiliate, display, referral. Not free text. GA4's default channel grouping keys off medium, so a non-standard medium lands your traffic in "unassigned", which is where data goes to be ignored.

Never UTM-tag internal links. Tagging a link from one page of your site to another starts a new session and attributes it to whatever you typed. It is the fastest way to destroy an attribution report, and it is usually done with good intentions to "track the banner". Use an event for that.

Auto-tagging beats manual tagging for Google Ads. Leave gclid to do its job; hand-written UTMs on ad URLs cause disagreement between Ads and Analytics that nobody enjoys reconciling.

Making it stick

The rules only hold if generating a tagged URL is easier than typing one. A shared spreadsheet with dropdowns, or a small internal builder page, is enough. Anything that makes the correct path the lazy path.

Then audit quarterly: list every distinct source and medium, sort alphabetically, and look for near-duplicates. They stand out immediately when sorted, and they are invisible when sorted by traffic.

The retrospective fix

There is not one, really. You can create channel groupings that merge variants going forward, and you can filter in a reporting layer. You cannot rewrite what was collected.

Which makes this one of those areas where fifteen minutes of convention, agreed once, is worth more than any amount of subsequent analysis.

Read next

Reading about it is slower than looking

Run the free audit on your own site. Public data, about ten seconds, no account.

Audit my site

Stop reporting what happened.

Start telling clients what to change — and prove it moved.

Get started
Beta · help shape it

What would make this worth paying for?

Everything on this site works today. It is early, so the roadmap is still genuinely movable — tell us what is missing and we will build it. Testers who give us something useful get a lifetime deal on whatever plan they end up on.

No account needed. Email is optional.