A UTM naming convention is a short written rule for how every campaign link is tagged. It fixes the spelling of source, medium and campaign values, so reports group traffic the same way every time. Missing tags show as (not set), and inconsistent ones can split one channel across many rows. Owners can require it from any agency.
By Avi Vatsa, CEO, Exchange Four Agency. Avi leads the team that installs and runs AI-leveraged revenue systems for owner-led companies. His background spans law, technology, and marketing; he also co-founded Dialora, an AI voice-agent platform for automated lead capture and booking. (Marketer of the Day #1411)
What are UTM parameters?
UTM parameters are short tags added to the end of a web address. When someone clicks the link, the tags travel with the visit and Google Analytics reads them. Together they say where the visit came from and why.
There are five. The first three do most of the work.
The utm_source tag names who sent the visit. Google's URL builder help page describes it like this:
"Referrer, for example: google, newsletter4, billboard"
The utm_medium tag names the type of link or channel. The same page says:
"Marketing medium, for example: cpc, banner, email"
The utm_campaign tag names the campaign the link belongs to.
Two more are optional. The utm_term tag holds a paid keyword, and utm_content tells apart different ads or links that point to the same page.
A tagged link looks like this: your normal page address with ?utm_source=newsletter&utm_medium=email&utm_campaign=spring-offer added at the end. Nothing changes for the visitor. The change shows up in your reports.
Why do consistent UTM values matter for reporting?
Because a report can only group what is written the same way. Two things go wrong, and both cost you clarity.
The first is missing tags. Google states the result plainly:
"Missing UTM parameters will result in (not set) values being present in reporting."
A (not set) row means some visits arrived with no tag, so you cannot say which campaign produced them.
The second is tags that are present but written differently each time. This one is not a Google statement, it is plain logic: a report treats two different spellings as two different values. If one person writes email, another writes e-mail and a third writes newsletter, you get three rows for what you think of as one thing.
An agency that tags links by hand will produce this drift without anyone meaning to. The fix is a written standard, not a reminder to be careful.
How does Google Analytics turn UTM values into channels?
Google Analytics groups traffic into channels, and the grouping depends on your tags. Google's page on how traffic source dimensions are updated says:
"UTM parameters are used to populate cross-channel dimensions in Google Analytics."
The channels follow rules on Google's default channel group page. It defines each channel in words. For example, it says:
"Email is the channel by which users arrive at your site/app via links in email."
As we read that page, the rules also check the medium value. A medium of organic points to Organic Search, and a source of (direct) with a medium of (none) or (not set) points to Direct. Read the page yourself before you fix your own list of mediums, because the exact match rules are what your list has to fit.
One more line from that page matters to an owner:
"Channel definitions aren't case sensitive and can't be edited."
That sentence is about Google Analytics 4's own channel definitions. It means you cannot change the rules to suit your tags, so your tags have to fit the rules. It says nothing about how your UTM values are stored, and this article makes no claim on that.
What does an inconsistent report look like?
This is an illustrative example. The numbers are invented to show the arithmetic. They are not a benchmark and not a real account.
An agency sends one email campaign. Over the month, four people build links by hand, and the report shows this:
| Medium value in the report | Sessions |
|---|---|
| 120 | |
| 45 | |
| newsletter | 60 |
| 25 |
The total is 120 + 45 + 60 + 25 = 250 sessions from one email campaign. The owner asked how much email brought in, and no single row answers it. Some variants may not match the Email channel rule at all. With a standard, all 250 sessions carry the medium email and the answer is one number.
What naming standard should you require from an agency?
Everything in this section is Exchange Four's own recommendation. It is not a Google rule, and Google does not require any of it. We suggest it because it removes the drift described above and is short enough to follow without training.
| Parameter | What goes in it | Our rule |
|---|---|---|
| utm_source | Who sent the visit | One name per sender, taken from a shared list, such as google, linkedin or newsletter |
| utm_medium | The type of channel | Only values from one fixed list of mediums, no others |
| utm_campaign | The campaign | A short name set before launch, same on every link in the campaign |
| utm_term | Paid keyword | Optional. Use only for paid search keywords |
| utm_content | Which ad or link | Optional. Use to tell versions apart |
Then add these rules for every value:
- Lowercase only. Write every value in lowercase. The point is that no one should have to wonder how a tool handles capitals, so we remove the question.
- No spaces. Use a hyphen between words, for example spring-offer.
- No other punctuation. Letters, numbers and hyphens only.
- One fixed list of mediums. Agree the list before the first link is built. Google's examples are cpc, banner and email. Add the others you need, such as paid-social or organic-social, and check each against the medium rules on Google's channel page so it lands in the channel you expect.
- No personal data in a tag. Never put a name or an email address in a value. Tags sit in the web address, and web addresses get shared and logged.
- Tag links that bring people to your site. Do not tag links that move people from one page of your site to another.
- Set the campaign name once. Choose it before launch and do not rename it halfway through.
If the agency needs a new source or medium, it asks you first, and you add it to the list.
How should the standard sit in the agency agreement?
Four requirements are enough:
- One shared sheet. The agency keeps a sheet with the allowed sources, the allowed mediums and every campaign name. You own the sheet, and the agency edits it. If you ever change agency, the sheet moves with you. The page on who owns your marketing assets when you leave an agency explains why that matters.
- Links built from the sheet. Nobody types a tag from memory. Every tagged link comes from the sheet or from a link builder that uses its values.
- A list of live links. At launch, the agency sends you the final tagged addresses for the campaign.
- No unlogged changes. If a source, medium or campaign name changes, the change goes in the sheet with a date.
What happens when Google Ads auto-tagging is also on?
This is the one place where we cannot give you a single rule, and we will not pretend otherwise.
Auto-tagging is a Google Ads setting that adds a click ID, called GCLID, to the destination address after someone clicks an ad. Google's auto-tagging help page says you can tag by hand as well:
"you can manually tag the destination URLs in your ads with UTM parameters"
The same page then says which one wins in GA4:
"in Google Analytics 4 (GA4), auto-tagging is prioritized over manual tagging due to the absence of an override option."
Now compare that with the traffic source dimensions page. It says:
"if any UTM parameter is present on the URL, Google Analytics will derive all cross-channel traffic source dimension values from UTM parameters, exclusively."
These two pages read differently. One says auto-tagging is prioritized. The other says that when any UTM parameter is on the URL, the cross-channel values come from the UTM parameters. They may describe different cases, and our sources do not settle it. So we do not state a precedence rule.
What an owner can do instead:
- Ask the agency in writing whether auto-tagging is switched on, and whether the Google Ads links also carry UTM tags.
- Test on your own property. Look at how a recent week of Google Ads traffic appears in your reports, and write down what you see.
- Put the result in the standard. State whether Google Ads links get manual tags or not.
The rest of the standard applies to every other channel either way.
How do you check that the agency follows the standard?
A check takes a few minutes and needs no technical skill. Do it monthly.
- Look for (not set). Open the report that shows traffic by source and medium. Any (not set) row means some links went out without tags.
- Compare mediums with your list. A value that is not on the list is a breach, and a quick message to the agency fixes it.
- Scan for near-duplicates. Two spellings of the same thing, like email and e-mail, mean someone built a link by hand.
- Match campaigns to the sheet. Every campaign name in the report should appear in the sheet.
Clean tags make every other report easier to trust. How to read a marketing agency report covers which conversion numbers hold up, and what metrics a marketing agency should report lists the numbers to ask for. Tags tell you where a visit came from. A conversion tells you what it did, and how to track form leads in Google Analytics 4 covers the form side.
What do these sources cover, and what do they not?
The four pages quoted here are Google's own help pages for Analytics and Google Ads, read on 30 October 2026. They do not give a naming standard, a list of approved mediums or a rule for capitals in UTM values. The standard here is our recommendation. The two pages on auto-tagging and UTM precedence read differently, and we have said so. The messy-report table is an example, not data from any company.
What is the short version?
UTM parameters tell Google Analytics where a visit came from. Missing tags give (not set), and inconsistent tags split one channel across rows. Require a short written standard from your agency: lowercase values, no spaces, one fixed list of mediums, one campaign name set before launch, and a shared sheet that you own. Treat that standard as our recommendation, not a Google rule. Test the auto-tagging question on your own property before you write a rule for it. Then check the report for (not set) and stray spellings every month.
