A UTM naming convention is a written set of rules for how your team fills in each UTM parameter: which characters are allowed, which values are approved, and in what order a campaign name is built. The short version: use lowercase only, use hyphens instead of spaces, pull utm_source and utm_medium from a fixed list, give utm_campaign one repeatable pattern, and generate every link from a shared builder instead of typing it by hand.
This guide walks through the rules, a campaign naming pattern you can copy, the GA4 medium values that matter, and a simple governance routine. It is written for owners, marketers and analysts who want reports they can trust.
TL;DR
- Write every UTM value in lowercase, with hyphens between words and no spaces or special characters, so one campaign never splits into several rows.
- Keep
utm_sourceandutm_mediumon approved lists. In GA4,utm_mediumdrives channel grouping, so an unrecognized value can land traffic in “Unassigned.” - Give
utm_campaignone pattern, such as date, offer, objective, audience and region, and never reuse a string for a different campaign. - Never add UTMs to links inside your own site. It restarts the session and overwrites the real source.
- Enforce the convention with a locked builder, one owner and a monthly audit. A document nobody checks is not a standard.
Table of Contents
- What UTM parameters are and why naming matters
- The formatting rules every convention needs
- Source and medium: use a fixed vocabulary
- Building the utm_campaign name
- Content and term: keep them useful
- Common mistakes and how to fix them
- Document, enforce and audit
- How to check that it is working
- Our perspective
- Get help setting up tracking that holds together
- FAQ
- Sources
What UTM parameters are and why naming matters
UTM (Urchin Tracking Module) parameters are tags added to the end of a URL so analytics tools can attribute traffic and campaign performance. The University of Illinois brand guidelines list five: utm_source, utm_medium, utm_campaign, and the optional utm_content and utm_term. If you need a refresher on building links, our guide to how to use UTM parameters covers the basics.
Here is what each one is for:
| Parameter | What it answers | Example value |
|---|---|---|
utm_source |
Where the click came from (the platform or sender) | google, newsletter |
utm_medium |
The type of channel | cpc, email, social |
utm_campaign |
Which campaign or promotion | spring-sale |
utm_content |
Which creative or link variation | hero-button |
utm_term |
The paid keyword, if any | running-shoes |
Google’s own documentation for Analytics URL builders also describes utm_id (a campaign ID) and utm_source_platform (the platform responsible for directing traffic to a property), which become useful once you run many campaigns across ad platforms.
The reason naming matters is simple. Analytics tools treat values as literal text. Facebook, facebook and fb are three different sources. Think of your UTMs as a filing system: if every person labels folders their own way, nothing can be found later. Many UTM mistakes also raise no error at all. AnyTrack’s documentation notes that inconsistent naming fragments traffic into multiple rows and that missing required parameters can break traffic categorization, which quietly damages attribution.
The formatting rules every convention needs
Before you decide on any structure, lock in the character-level rules. They are the cheapest fixes with the biggest payoff.
Use lowercase everywhere
UTM values are case sensitive in reports. Hootsuite recommends standardizing on lowercase for every value so variants do not become separate rows. The Illinois guide gives the same advice and adds that parameters should be added in the same order every time.
Use hyphens, not spaces
Spaces get encoded as %20, which makes links and reports hard to read. Hootsuite suggests underscores or hyphens instead. Pick one and stay with it. HockeyStack’s documentation recommends hyphens, and so do we, because a single separator is easier to enforce. A common split is hyphens inside a value and underscores only if your team already uses them as field separators, but the simplest rule is one separator everywhere.
Avoid special characters
HockeyStack’s UTM best practices say to avoid special characters, not to reuse a UTM string across campaigns, and not to edit existing UTMs mid-flight. If something has to change, create a new sequence number instead. Letters, numbers and hyphens cover almost every case.
Be consistent about one spelling per idea
Koko Analytics gives a clear principle: choose one format such as spring-sale rather than mixing SpringSale and spring_sale, because inconsistent names show up as separate rows. The same page recommends using the same utm_campaign value across different sources and mediums so you can compare one campaign across channels.
Source and medium: use a fixed vocabulary
The two parameters that need the strictest control are utm_source and utm_medium. Source names a platform. Medium names the type of channel. Neither should be free text.
Why medium is the most important field
In GA4, the default channel grouping depends on matching utm_medium. According to Trakl’s breakdown, the strings GA4 looks for include cpc, ppc and paidsearch for Paid Search, paid-social and paid_social for Paid Social, email for Email, display and banner for Display, affiliate for Affiliates, and referral for Referral. A value that is not on the list lands in “Unassigned” or “Other,” which hides it from standard reports. UTMGuard’s GA4 guide makes the same point and lists standard mediums such as cpc, email, social, referral, display and affiliate.
GA4 behavior changes over time, so check your own property’s channel group definitions in Admin before you finalize your list. If you are still setting up the property itself, our GA4 setup checklist covers the foundations.
A starter vocabulary
Use this as a draft and adjust it to the channels you run:
| Channel | utm_source | utm_medium |
|---|---|---|
| Google Ads search | google |
cpc |
| Meta paid social | facebook |
paid-social |
| LinkedIn paid social | linkedin |
paid-social |
| Email newsletter | newsletter |
email |
| Organic social post | linkedin |
social |
| Affiliate partner | partner name | affiliate |
| Display banner | publisher name | display |
Two rules keep this table healthy. First, one canonical name per platform: it is always facebook, never fb or meta in some links. Second, the source describes where the click came from, while the medium describes how. Mixing them up is one of the most common mistakes.
Building the utm_campaign name
This is where teams most often disagree, because campaign names carry the most meaning. The goal is a name that is readable in a report without opening the ad platform.
Pick fields that your team will actually use
One published approach, from Attributy’s governance guide, suggests that a structured campaign name may include market or region, audience, product or offer, campaign theme and funnel stage, and a date, quarter or launch period. HockeyStack’s pattern is year-month, product or offer, objective, audience, region and a sequence number, with an example like 2025-10-ai_launch-leadgen-prospecting-us-01.
The common thread is that every field answers one question and appears in the same position every time. Do not add fields you will not fill in.
A pattern you can copy
For most small and mid-sized teams, five fields are enough:
yyyy-mm-offer-objective-audience-region
Filled in, that looks like this:
2026-11-holiday-gift-guide-conversion-prospecting-us2026-11-holiday-gift-guide-conversion-retargeting-us2026-12-year-end-webinar-leads-newsletter-us
Only hyphens separate words, so the field boundaries are readable by position, not by punctuation. If you want fields to be machine-splittable, use a second separator such as an underscore between fields and hyphens inside them, and document it clearly. Do not mix approaches.
Three naming models, and when each fits
The pages that rank for this topic describe three structures. Here is how we would choose between them:
| Model | How it works | Best for | Trade-off |
|---|---|---|---|
| Key-value | Descriptive words in a flexible order | Small teams, few channels | Easy to read, easy to drift |
| Positional | Fixed fields in a fixed order | Mid-size teams, many campaigns | Needs a template to enforce |
| Coded | IDs that map to a lookup table | Large teams, many markets | Unreadable without the table |
Most growing businesses do best with the positional model, because anyone can read it and a builder can enforce it. Coded names make sense only when a lookup table is maintained and available to everyone who reads reports.
Add a date or ID so names do not collide
A date or sequence number keeps a repeated promotion from blending with last year’s. It also means you have a clean way to launch a revised version without editing a live link. Stable IDs help too: the utm_id parameter documented by Google can carry a platform’s campaign ID so reporting can survive a rename.
Mirror the ad platform hierarchy
Supermetrics suggests that utm_campaign should mirror the campaign name or the ad group name, depending on how granular your analytics need to be. Its hierarchy runs from account level (currency, region) to campaign level (objective, theme, start date, product), ad set level (bidding, targeting, placements) and ad level (creative, call to action, format). Matching the names in your ad platforms to your UTM names means one convention serves both systems. Our guide to paid search management shows how account structure supports this kind of consistency.
Content and term: keep them useful
Use utm_content to tell apart links that point to the same page within one campaign. Hootsuite describes it as identifying the exact creative or element clicked, which is handy for A/B tests. Good values are short and descriptive: header-cta, footer-link, video-a, video-b.
Use utm_term for the paid keyword. On Google Ads, many teams fill it automatically with a ValueTrack parameter instead of typing it, which removes one more chance for error. Check the ad platform’s own documentation for the current macro syntax before you set it up.
Common mistakes and how to fix them
These are the problems we would look for first in an audit.
- Case and spelling variants.
Email,emailande-mailfragment one channel. Fix: lowercase and an approved list. - Unrecognized mediums. A value such as
paid_social_adsis not on GA4’s recognized list and may fall into Unassigned. Fix: use the standard strings above. - Tagging internal links. Hootsuite explains that UTMs on internal links restart the session and overwrite the original source, so your own site can appear as the traffic source. Tag only links that bring people from outside your site.
- Missing required parameters. Leaving out source, medium or campaign can break categorization.
- Reusing a campaign string. A recycled name merges unrelated results. Add a date or sequence number.
- Editing links mid-flight. You split history in two. Create a new version instead.
- Typing from memory. This is the root cause of most of the above. Use presets or a builder.
Document, enforce and audit
A convention only works when it is easy to follow. LinkUTM’s template suggests a team document with non-negotiable format rules, approved value lists, a single owner who approves new values, and a regular audit of GA4 traffic acquisition reports, for example monthly. It also recommends building links with a locked builder and validating before shipping.
A five-step routine
TrackFunnels outlines a circular process that is simple to adopt:
- Catalog: keep one list of every approved value and what it means.
- Constrain: make your link tools accept only values from that list.
- Create: everyone builds links with the tool, not by hand.
- Check: review links before launch and look at reports about 24 hours later.
- Correct: fix wrong values fast and update the tool so the error cannot recur.
What to put in your one-page convention
- The format rules (lowercase, hyphens, allowed characters)
- The approved source and medium table
- The campaign pattern with two or three real examples
- Rules for content and term values
- The name of the owner who approves new values
- The audit schedule and where results are recorded
If you inherit a messy history, do not try to rewrite old data. Pick a cutoff date, apply the convention to everything launched after it, and update active campaigns that do not comply.
How to check that it is working
A convention is a means to an end, so measure the result:
- Unassigned share: in GA4’s traffic acquisition report, the share of sessions in Unassigned should be small and falling. Set your own target with your analyst.
- Distinct values: count the unique
utm_sourceandutm_mediumvalues. It should match your approved list. - Campaign rollups: can you total one campaign across every channel without manual cleanup?
- Time to report: how long does it take to build the monthly marketing report? Cleaner data should shorten it.
For how this connects to the bigger picture, see our pieces on measuring digital marketing effectiveness and conversion tracking.
Our perspective
We see the same pattern in marketing reporting again and again: the tools are fine, but the labels are not. A team spends real budget on campaigns, then cannot say which channel did what, because the same source was spelled four ways.
Our view is that naming conventions are a business decision, not an admin chore. They decide whether your reports can answer a CMO’s questions. We encourage clients to treat the convention as shared infrastructure, like plumbing: invisible when it works, expensive when it leaks.
At Magic Logix, we build measurement and campaign systems with that in mind, so tagging, analytics and reporting are designed together rather than patched afterward. It is part of how we approach Digital Beyond Tomorrow: practical foundations first, then the more advanced work on top.
Hassan Bawab
Get help setting up tracking that holds together
If your reporting is already messy, or you are launching across several channels, we can help you design the convention, the builder and the audit routine as part of a broader measurement plan. Learn more about our digital marketing and paid media services, or start a conversation with Magic Logix about what your team needs.
FAQ
What are the five UTM parameters?
They are utm_source, utm_medium, utm_campaign, utm_content and utm_term. Source, medium and campaign are the three most analytics tools expect, while content and term are optional. Google also documents extra parameters such as utm_id for campaign IDs.
What is a good example of a campaign naming convention?
A simple pattern is year-month, offer, objective, audience and region, such as 2026-11-holiday-gift-guide-conversion-prospecting-us. Each field sits in the same position every time. Your own pattern can differ, as long as it is documented and every link follows it.
Should UTM parameters be lowercase?
Yes. Values are treated as literal text, so Email and email appear as separate rows. Lowercase everything and use hyphens instead of spaces, as the Illinois guidelines and Hootsuite both advise.
Should I add UTMs to internal links?
No. Tagging links inside your own site restarts the session and overwrites the original source. Use UTMs only on links that bring visitors from outside, such as ads, emails and social posts.
How often should we audit our UTMs?
A monthly review of GA4 traffic acquisition is a practical starting point. Look for unrecognized mediums, case variants and a growing Unassigned share, then fix the builder so the problem does not return.
Sources
- UTM Guide, University of Illinois Brand Guidelines
- URL builders: Collect campaign data with custom URLs, Google Analytics Help
- UTM parameters: What they are and how to use them, Hootsuite
- Tracking UTM parameters, Koko Analytics
- UTM Best Practices, HockeyStack documentation
- UTM Mistakes to Avoid, AnyTrack Knowledge Base
- utm_source vs utm_medium, Trakl
- The Complete UTM Tracking Guide for GA4, UTMGuard
- UTM Governance: Naming Conventions for Clean Reporting, Attributy
- Campaign naming conventions, Supermetrics
- UTM Naming Convention Document Template for Teams, LinkUTM
- UTM Governance and Team Workflow, TrackFunnels




