Five parameters, and only three matter
UTM parameters are query strings appended to a URL that analytics tools read to attribute a visit. They are not standardised by anyone — they are a convention from an old analytics package that everything now supports.
- utm_source — where the traffic came from:
newsletter, twitter, partner-site. Required.
- utm_medium — the kind of channel:
email, social, cpc, referral. Required, and the one most often filled in wrongly.
- utm_campaign — which effort this belongs to:
spring-sale, launch-2026. Required in practice.
- utm_term — the paid keyword. Only relevant to search advertising.
- utm_content — which variant of a link:
header-cta, footer-link. Useful for A/B testing and for telling two links in the same email apart.
The [msm_tool slug="utm-builder"] assembles them, and can lowercase everything, which is the single most valuable option it has.
Case sensitivity ruins reports
Analytics tools treat Facebook, facebook and FaceBook as three different sources. Nothing warns you; the report simply has three rows where it should have one, and every number is a third of what it should be.
This happens constantly, because different people build links at different times. The defence is to lowercase everything, always, without exception — and to write it down somewhere so the next person does the same.
Agree a convention and keep it
The parameters are free text, which means consistency is entirely up to you and there is nothing to enforce it.
Decide, in writing:
- The medium values you allow. A short fixed list —
email, social, cpc, referral, affiliate. Not Email Newsletter one week and e-mail the next.
- A separator. Hyphens throughout, and never a mix of hyphens and underscores.
- A campaign naming pattern. Something like
2026-03-spring-sale, which sorts chronologically in a report.
- Who builds links. Shared links built ad hoc by five people produce five conventions.
Keep a shared sheet of every campaign link you create. It is dull and it is the difference between analytics you can use and a list of near-duplicate rows.
Never tag internal links
The most damaging mistake with UTMs, and it looks harmless.
Adding UTM parameters to a link between two pages of your own site starts a new session and reattributes the visitor to the new source. Someone who arrived from a search result and clicked an internal tagged link is now recorded as arriving from that tag — the original attribution is destroyed, and the conversion is credited to the wrong place.
UTMs are for traffic arriving from outside. For tracking internal clicks, use events.
They are public
The parameters sit in the address bar. Visitors see them, they get copied when someone shares the link, and they end up in other people's analytics.
Two consequences: do not put anything confidential in a campaign name, and expect tagged links to be shared onward, which inflates the source you tagged. Internal names like test-audience-b-cheap-list have escaped into public view more than once.
Length
A tagged URL over about 2,000 characters risks being truncated by some browsers and email clients. That is rarely reached with sensible names and easily reached when campaign values are sentences.
Short, lowercase, hyphenated. Everything else follows from that.