UTM Naming Conventions: A Framework Your Team Will Actually Follow
By Abdessamad Bettal· · updated · 3 min read
Key takeaways
- Three rules prevent most UTM mess: lowercase everything, use hyphens inside values, and pick source and medium from a closed list.
- Build your medium list from values GA4's default channel rules recognize (email, social, cpc, referral, affiliate, display, audio, sms). Invented mediums like newsletter or organic-social land in Unassigned.
- Source answers who sent the click. Medium answers what kind of channel it came through.
- Enforce the convention with one shared link builder and a quarterly audit of your source/medium report.
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 · social · cpc · paid-social · referral
display · affiliate · audio · sms
Every value on that list maps to a channel in GA4's default channel group. That isn't a coincidence: if you invent a medium like newsletter, organic-social, or podcast, GA4 can't classify it, and the traffic lands in Unassigned. The GA4 Unassigned traffic guide lists the exact rules and which values match each channel.
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/facebookpair 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 (social). Source answers "who sent it", medium answers "through what kind of channel".
A printed QR code — source names the placement: conference-booth, packaging, poster. GA4 has no default channel for offline media, so either use utm_medium=referral or keep utm_medium=qr and map it with a custom channel group. 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.