Quick answer: A UTM naming convention is a short written rule for what you put in utm_source, utm_medium and utm_campaign, so every person on the team produces the same spelling for the same thing. The rules that matter most: write everything in lowercase, pick one value per platform and one per channel type from a fixed list, name campaigns with one pattern, and give one person ownership of the list. Google's own guidance says parameter values are case sensitive, so Newsletter and newsletter become two rows in your reports.
Key takeaways
- Reports split because of spelling, not because of tools.
linked-inare three sources.- Fix the vocabulary for source and medium, and give campaigns a single pattern.
- Write the rules down in one place, with an owner and a register of campaigns.
- Keep it small. A convention with 40 rules will be ignored; one with eight will be followed.
- Check links before they go out. A convention only works if it is applied when the link is made.
Why UTM names drift
Nobody decides to break a convention. It breaks because links are created by different people at different times, under pressure, from memory. One person writes utm_source=Newsletter, another email, a third newsletter-oct. Each is reasonable to the person who typed it. In the report, each is a separate line.
Google's help page on URL builders is blunt about this. It says to use utm_source, utm_medium and utm_campaign whenever you add parameters, that missing parameters result in (not set) values in reporting, that values are case sensitive, so utm_source=google differs from utm_source=Google, and that names like SpringSale and Spring_Sale are considered distinct. It recommends a strict, case-sensitive naming convention for all fields, with lowercase as the standard.
That is the whole problem and most of the answer. The rest of this post turns it into a system a small team can actually keep.
The eight rules
- Lowercase everything. No exceptions, including campaign names and
utm_content. - Use hyphens, not spaces or underscores. Pick one separator and keep it. Spaces turn into
%20in the URL and look different in different tools. - One source value per platform.
linkedin, notLinkedIn,linkedin.comandli. - One medium value per channel type.
email,social,cpc,referral,qr,affiliate. Many analytics tools group traffic into channels using the medium, so common values are safer than inventive ones. - One campaign name per effort. The same campaign name on every link of the campaign, so one launch does not split into five rows.
- Use
utm_contentto tell links apart, never to rename the campaign. It is for "which button" or "which creative". - Never put personal data in a UTM value. No email addresses, names or customer ids. They end up in analytics, server logs and screenshots.
- One owner. One person approves new values and keeps the list.
Source and medium: a controlled vocabulary
Source answers "where did the click come from?" and medium answers "what kind of channel was it?" Fixing both as short lists removes most of the drift.
utm_medium |
Use it for | Example utm_source values |
|---|---|---|
email |
Newsletters and email campaigns | newsletter, welcome-flow, partner-mailing |
social |
Organic posts and bio links | linkedin, instagram, tiktok, youtube |
cpc |
Paid ads that you pay per click for | google, meta, linkedin |
referral |
Links on other people's sites | northwind, podcast-name |
qr |
Printed material and signage | flyer, packaging, event-booth |
affiliate |
Partner and affiliate links | partner name |
Adapt the list to your business, but keep it short enough to remember. If a new source does not fit, you add it to the list on purpose, you do not invent it in a link. Google also recommends one unique source per platform and one medium per channel, and distinct sources for sub-platforms. That is the same idea in other words.
Campaign names: one pattern
Campaigns are where most of the spelling drift hides, because there is no natural list. Use one pattern and write down three examples. A pattern that works for many small teams:
<initiative>-<period>
| Good | Why it works | Bad | What goes wrong |
|---|---|---|---|
winter-sale-nov |
Lowercase, one separator, period included | Winter Sale |
Case and spaces |
webinar-seo-2026-q4 |
Topic and period, readable in a report | webinar |
Reused next quarter, results merge |
product-launch-v2 |
Tied to a specific launch | launch_v2_FINAL |
Mixed separators and a word nobody can reuse |
Include a period when a campaign repeats, so that this November's results do not merge with last November's. Keep the name stable for the whole run: if the offer changes, the name does not.
For individual links, use utm_content to separate them:
https://acme.com/winter-sale?utm_source=newsletter&utm_medium=email&utm_campaign=winter-sale-nov&utm_content=header-button
header-button versus footer-link then shows which placement worked, inside one campaign row.
Where the convention lives
A rule nobody can find does not exist. Put the convention in one short document, and keep a campaign register next to it, a simple sheet with one row per campaign:
| Column | Example |
|---|---|
| Campaign name | winter-sale-nov |
| Owner | Maya |
| Start and end | 2026-11-01 to 2026-11-30 |
| Channels | newsletter, linkedin, northwind |
| Landing page | https://acme.com/winter-sale |
| Status | planned / live / closed |
The register does three jobs. It prevents two people from inventing the same campaign under two names. It tells you which names are valid when you read a report. And it gives the owner a place to approve a new value before it appears in the wild.
How to apply it when links are created
A convention is worth what happens at the moment someone makes a link. A few habits help, and they do not need special software:
- Build links from one place. Use a single UTM builder, not hand-typed query strings. The free UTM builder and the UTM option in useClick both give you fields for source, medium, campaign, term and content, and show the finished URL before you use it.
- Keep campaign links together. In useClick, links can be grouped into campaigns (Starter and above), so the links of one effort live in one place and you can see them at a glance.
- Know what the tool does not do. The UTM fields in useClick are free text. Nothing rewrites or blocks a different spelling, so the convention has to live in your document and your habits.
- Paste the rule where people work. Put the source and medium list at the top of the campaign register, and in the instructions of any assistant that creates links for you. If you create links through an AI agent, a weekly loop with MCP shows how to give it a naming rule once.
If you manage a large archive of links as well, how to organize 10,000+ links covers slugs, folders and cleanup, which is the other half of the same problem.
Fixing a messy history
You probably have old links with inconsistent tags. Do not rewrite history, you will break links people already shared. Instead:
- Pick a cutoff date. From that day, new links follow the convention.
- Map the old values. In your reporting, group
Newsletter,newsletterandemail-newsletterinto one line. Most analytics tools can do this with filters or a report mapping, or you can do it in a spreadsheet. - Do not edit live links casually. Changing a destination URL is fine when it is a fix, but know that it changes how future clicks are attributed.
- Review once a quarter. Look at your top 30 sources and campaigns, merge duplicates in reports, and update the list.
Frequently asked questions
What is a UTM naming convention?
It is a written set of rules for the values you put in UTM parameters, such as always lowercase, one source per platform and one campaign pattern, so that the same thing is always spelled the same way and reports stay clean.
Are UTM parameters case sensitive?
In Google Analytics, yes. Google's documentation states that parameter values are case sensitive, so utm_source=google and utm_source=Google are different values. That is why lowercase is the standard.
Which UTM parameters are required?
Google recommends always using utm_source, utm_medium and utm_campaign. utm_term and utm_content are optional. Missing parameters show up as (not set) in reports.
Should I use hyphens or underscores?
Either works, as long as you pick one and use it everywhere. Hyphens read well in URLs and are a common choice. What matters is consistency across the team.
How many people need to follow the convention?
Everyone who creates a link for a campaign: marketing, sales, partners, agencies and freelancers. Send the rules and the source and medium list to outside contributors before they build their first link.
Can I enforce UTM naming in useClick?
The UTM fields accept any text, so useClick does not restrict spelling. You enforce the convention with a shared list, a register and one person who approves new values. You can group campaign links in the campaigns feature on Starter and above.
Do UTM tags change how clicks are counted?
No. They label the destination URL so that your analytics tool can attribute the visit. If clicks and sessions differ, see why link clicks and GA4 sessions differ.
The decision in one paragraph
Write down eight rules, a short list of sources and mediums, and one campaign pattern. Name an owner, keep a register of campaigns, and build every link from one builder instead of by hand. Start from a cutoff date and group the old values in your reports. A small convention that people follow beats a thorough one they never open, and clean names are what make every later question, from "which channel worked?" to "which creative won?", cheap to answer.




