UTM hygiene: a naming scheme your future self will thank you for

Campaign tags are only useful if everyone spells them the same way. A short set of rules, a template, and how to enforce it at the link instead of in a spreadsheet.

§
GUIDES

Every marketing team has a report somewhere with Newsletter, newsletter, news-letter and Newsletter as four separate sources. The data is fine. The naming is not. UTM parameters are free text, and free text drifts unless something holds it still.

The fix is a scheme, written down, applied at the point where links are made.

Five parameters, three you actually need

utm_source is where the click came from: newsletter, x, linkedin, partner-acme. utm_medium is the channel type: email, social, paid, qr. utm_campaign is the thing you are running: spring-launch, webinar-2026-09. That is enough for nearly every report you will ever build.

utm_content and utm_term are for splitting inside a campaign, like two button variants in the same email, or the keyword in a paid ad. Use them when you have a question they answer, not by habit.

The rules

  • Lowercase, always. Analytics tools are case-sensitive. Email and email are two rows.
  • Hyphens, not spaces or underscores. Spaces get encoded as %20 and look broken in reports. Pick hyphens and never change your mind.
  • Source is a place, medium is a type. If you can say "I clicked it on ___", that is the source. If you can say "it was a ___ link", that is the medium.
  • Campaign names carry a date. spring-launch is ambiguous in year three. spring-launch-2026 is not.
  • No personal data. A recipient's email address in a UTM value is a privacy problem and a support ticket.

A naming guide in a wiki gets read once. The place to enforce it is where links are created.

In the dashboard, campaign tags on a link are picked from a list, and the list is the scheme. New values can be added, but only deliberately, so newsletter stays one thing. Bulk imports run the same validation, which is where most drift used to sneak in: a CSV with a hundred rows and three spellings.

The API accepts the same values and rejects the same mistakes, so links generated by your own tools follow the rules without anyone checking.

What a clean campaign looks like

For a September product launch announced by email, on X, on LinkedIn, and on a printed handout at an event:

Placement source medium campaign
Newsletter newsletter email launch-2026-09
X post x social launch-2026-09
LinkedIn post linkedin social launch-2026-09
Event handout QR event-nyc qr launch-2026-09

Four links, one campaign, and the report groups itself.

Retrofitting an old mess

You will not fix historical data, and you do not need to. Draw a line, adopt the scheme from the next campaign, and let the old rows age out of your reporting window. Six months later the mess is gone and nobody had to clean it.

All posts Published Sep 8, 2026
§
READ NEXT

Ready to shorten something?

Free to start, and your first branded link is about ninety seconds away.

  • Free forever plan
  • No card required
  • Cancel anytime