UTM Naming Conventions: A Framework Your Team Will Actually Follow

· 2 min read

Every analytics team eventually opens their acquisition report and finds email, Email, e-mail, and newsletter-email living as four separate mediums. The tool did nothing wrong — UTM parameters record exactly what you type. Clean data is a naming problem, and naming problems are solved with conventions, not dashboards.

The three rules that prevent 90% of the mess

1. Lowercase everything, always. Analytics platforms treat UTM values as case-sensitive strings. One capital letter forks your data. Making lowercase-only an absolute rule removes an entire class of drift, and it's trivially checkable.

2. Hyphens inside values, never spaces. A space in a UTM value gets encoded as %20 or + depending on the tool that built the link, and those render as different values in some reports. spring-sale is unambiguous everywhere. (Underscores work too — but you're already using hyphens in slugs, so one separator sitewide is simpler.)

3. Closed vocabularies for source and medium. Source and medium should be picked from a list, not written from scratch. New values get added to the list deliberately, not invented mid-campaign.

A starter vocabulary

Mediums (the channel type — keep this list short and stable):

email · cpc · paid-social · organic-social · referral
display · affiliate · qr · podcast · sms

Sources (the specific platform — grows over time):

google · bing · facebook · instagram · linkedin · x
newsletter · partner-{name} · event-{name}

Campaigns benefit from a structured pattern rather than a list. A format like {year}-{initiative} or {quarter}-{product}-{goal} sorts chronologically and stays parseable:

2026-spring-sale
2026-q2-espresso-launch

Term stays reserved for paid keywords (ad platforms often populate it automatically). Content distinguishes variants: hero-cta vs footer-link, variant-a vs variant-b.

Write it down where links get made

A convention that lives in a wiki nobody opens is decoration. The practical fixes:

  • One shared spreadsheet or doc listing the allowed values, linked from wherever campaigns are planned.
  • One shared link builder. If everyone constructs links through the same UTM builder, encoding is handled and the live preview catches typos before they ship. Bookmark it in the team browser.
  • A quarterly audit. Export your source/medium report, sort alphabetically, and look for near-duplicates. Every fb/facebook pair you merge is historical data you can't fully repair — the audit's real value is catching drift early.

Handling the gray areas

A partner posts your link on their LinkedIn — source is the partner (partner-acme), medium is where it ran (organic-social). Source answers "who sent it", medium answers "through what kind of channel".

A printed QR codeutm_medium=qr, source names the placement: conference-booth, packaging, poster. Print links are unmeasurable without tagging, which makes them the strongest case for doing this consistently.

Links in your own product emails (receipts, password resets) — tag them (source=product, medium=email) or don't, but decide once. Transactional email is a real acquisition channel for reactivation, and untagged, it shows up as direct traffic — indistinguishable from nothing.

The convention doesn't need to be clever. It needs to be short enough to remember, written down, and enforced by the tool everyone already uses.