UTM naming conventions that survive reporting
Most UTM data problems are naming problems. Because tools treat utm_source=Reddit and reddit as different values, inconsistent casing and spelling fragment one campaign across many rows. This page gives a convention — lowercase, hyphenated, documented allow-list — that keeps reports clean.
The convention
Adopt one set of rules and apply them to every parameter, every time:
- Lowercase only — casing creates duplicate rows
- Hyphen-separated, no spaces or underscores in values
- A short documented allow-list of sources and mediums
- Stable, generic labels — never per-user or personal strings
Why casing fragments rows
UTM values are matched as exact strings. To a reporting tool, utm_source=Reddit, reddit, and REDDIT are three different sources, so one campaign's Reddit traffic is split across three rows and each looks smaller. The same happens with spaces, trailing characters, and inconsistent separators.
The fix is prevention, not cleanup: a documented allow-list that every link builder draws from. When the strings are fixed in advance, links built by different people and tools still aggregate, and your reports show the campaign at its true size.
Document and enforce it
Keep the allow-list somewhere everyone building links can see, and treat adding a new source or medium as a deliberate change rather than an ad-hoc choice. A link builder that fills the values from a list, rather than free text, removes most casing and typo errors before they reach your reports.
How it appears in analytics and logs
Reports group by the exact UTM string. Identical-but-differently-cased values appear as separate rows, so the same campaign looks split and smaller than it is.
Diagnostic use case
Adopt one documented UTM naming convention so links built by different people still aggregate into the same campaign, source, and medium rows.
What WebmasterID can help detect
WebmasterID attributes by the literal utm_* strings it receives, so a consistent convention is what makes its campaign rollups clean. A documented allow-list means new links land in existing rows instead of creating near-duplicates.
Common mistakes
- Allowing free-text UTM values so casing and typos create duplicate rows.
- Using spaces or capitals that fragment one source across several rows.
- Never documenting the allow-list, so each person invents their own labels.
Privacy and accuracy notes
A convention also enforces safety: the documented allow-list contains only generic labels, which keeps personal data and secrets out of UTM values by design.
Related pages
- UTM parameters explained: the five tags and how to use them
UTM parameters are query-string tags you add to a link so analytics can attribute the visit to a campaign even when the referrer is missing. This page explains the five tags, a consistent naming convention, and the hard rule that UTM values are public — so they must never contain personal data or secrets.
- Product launch campaign tracking
A product launch spans many channels at once. This page shows how to use a single utm_campaign across all of them while varying utm_source per channel, so you get a clean total for the launch and a per-channel breakdown without fragmenting the campaign.
- Campaign links (docs)
A link builder that enforces a consistent UTM convention.
Sources and verification notes
- MDN — URL search paramsUTM values are exact-match query-string parameters.
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.