UTM Best Practices: A Naming Convention Your Team Will Actually Follow

When one campaign shows up as five rows in GA4, the tags are rarely broken. Nobody agreed how to write them. These UTM best practices give your team one short rulebook: what goes in each tag, which words GA4 understands, and how to keep everyone on it.

By The Digital Marketing Support team · Updated · 10 min read

Your UTM tags are only as good as the least careful person who writes them. One person types Facebook, another types fb, a freelancer types meta-ads. GA4 now shows three sources for the same ads. Some of those values match none of GA4’s channel rules, so the visits drop into “Unassigned” and your paid social results look smaller than they are.

The fix is a UTM naming convention: a short, written set of rules for every tag. Below are the rules that matter, the words GA4 understands, and a template to copy.

Why UTM tags get messy

UTM tags are the bits you add to the end of a link, like ?utm_source=facebook&utm_medium=paid_social. They tell Google Analytics 4 (GA4) where a visit came from. No ad platform checks your naming rules for you. Whatever you type is what GA4 records.

Three facts turn small typing habits into messy reports:

  • Values are case sensitive. Google’s URL builder help page says utm_source=google is different from utm_source=Google. Two spellings mean two rows.
  • GA4 sorts visits into channels with fixed rules. Channels are labels such as Paid Social, Email and Organic Search. GA4 picks one from your source and medium, and its channel definitions can’t be edited. Words that don’t fit end up in Unassigned.
  • Many people write links. You, your agency, a freelancer, whoever sends the newsletter. Without rules, each one invents a style.

A naming convention fixes all three. It is not a setting; it is a written agreement that everyone checks their links against. If you already have a pile of Unassigned traffic, read how to fix GA4 Unassigned traffic too. This guide is about stopping new mistakes.

The UTM tags in plain English

Google lists the tags GA4 reads on its URL builders page, and says you should always use the first three.

Tag The question it answers Example value
utm_source Who sent the visit? facebook, google, newsletter
utm_medium What kind of traffic is it? paid_social, cpc, email
utm_campaign Which campaign or promotion? 202611_us_black-friday
utm_content Which ad, image or link was clicked? video-15s, header-button
utm_term Which paid keyword? waterproof boots
utm_id Which campaign ID? 120211234567
utm_source_platform Which buying platform sent it? Google+Ads
example.com/boots?… utm_source=facebookWho sent the visit? utm_medium=paid_socialWhat kind of traffic? utm_campaign=202611_us_black-fridayWhich campaign? GA4 channel: Paid Socialmostly from source + medium Campaign reportone row per campaign name
Source and medium decide the GA4 channel in most cases. A campaign name with "shop", "shopping" or "cross-network" can change it (see rule 7). The campaign name also sets the row you see in campaign reports.

utm_source vs medium vs campaign

An easy way to keep them apart: source is a name, medium is a type, campaign is a reason. “Facebook” is a source. “Paid social” is a medium. “Black Friday 2026” is a campaign. If you ever see paid_social in the source column or facebook in the medium column, the two got swapped.

utm_content vs utm_term

Picture one newsletter with a button at the top and a link at the bottom. Both links share the same source, medium and campaign. Only utm_content=header-button and utm_content=footer-link show which one people clicked. utm_term holds a search keyword, so social and email links can skip it.

Eight UTM best practices for a small team

1. Always fill in source, medium and campaign

A link with only a source and a medium still counts, but the campaign shows as “(not set)”. Google’s advice is to always use all three, and it strongly recommends adding utm_id and utm_source_platform as well. utm_id is the campaign’s ID number; it keeps campaigns apart even when two have similar names. utm_source_platform names the buying platform behind the click. Google suggests Google+Ads for Google Ads traffic on its page about traffic source dimensions.

2. Lowercase everything

GA4’s channel rules ignore case, but your reports don’t. Spring_Sale and spring_sale are two campaigns in the table. Google’s URL builder page recommends lowercase as a standard practice, and it is the easiest rule to follow.

3. One source name per platform, using names GA4 knows

GA4 decides if a source is a search engine, social network, video site or shopping site by checking it against lists. Google offers them as a downloadable list (a PDF) on its default channel group page. When we checked that list in October 2026:

  • On the social list: facebook, fb, instagram, ig, tiktok, linkedin, pinterest, reddit, snapchat
  • On the search list: google, bing
  • On the video list: youtube
  • Not on any list: meta, insta, x (for X, use twitter, which is on the social list)

A paid visit from a source that is not on a list usually ends up in the Paid Other channel. Even Google’s own tip on its URL builder page uses “insta” as an example for Instagram, so don’t assume a short name works. Pick the exact name from the list and write it into your rules.

For sources that are not platforms, such as your newsletter or a partner’s blog, pick one plain name and stick with it: newsletter, partner-blog.

4. Choose mediums from GA4’s channel rules

The medium is where most tags go wrong, so it gets its own section below. The short version: pick a medium from Google’s list of words, and put any extra detail in utm_content.

5. Build campaign names from a fixed pattern

A pattern turns guessing into filling in blanks. A simple one for small teams:

date _ market _ name, for example 202611_us_black-friday.

  • Date first (year and month) so campaigns sort in time order.
  • Market only if you sell in more than one country. Keep a short list: us, ca, uk.
  • Name in two or three words that a new team member would understand.

Google’s URL builder page suggests one name that matches the exact campaign name in the ad platform. If the campaign in Ads Manager is called 202611_us_black-friday, the tag says the same. Then you can match ad spend to GA4 results without a lookup table.

6. One separator between words, another between parts

Use a hyphen between words (black-friday) and an underscore between parts (202611_us_black-friday). Then anyone can split the name back into date, market and name in a spreadsheet. Never use spaces. A raw space breaks easily when a link is copied, and an encoded one (%20) is hard to read.

7. Keep “shop” and “cross-network” out of campaign names

This one surprises people. Two of GA4’s channel rules read the campaign name, not just the source and medium:

  • A campaign name that contains cross-network goes to the Cross-network channel.
  • A campaign name that contains shopping anywhere, or shop at the start, after a symbol or number, or after the letter e (as in _shop, -shop or eshop), goes to Paid Shopping if the medium is paid, or Organic Shopping if it is not. Google’s exact pattern is ^(.*(([^a-df-z]|^)shop|shopping).*)$.

Google lists those rules above the Social and Email rules, and a channel group puts a visit in the first channel it matches. So an email campaign named 202611_us_shop-the-sale can show up as Organic Shopping instead of Email. Use words like sale or store unless it really is a Shopping campaign.

8. Google Ads: auto-tagging first, UTM tags as the backup

With auto-tagging on, Google Ads adds its own click ID (gclid) to your links. When a link has both, GA4 uses the auto-tagged values for source and medium. Keep auto-tagging on.

But the click ID can’t always be used, for example when a visitor denies the ad_user_data consent. GA4 can then take the traffic source from your UTM tags, and missing tags show as “(not set)”. So Google’s page on traffic source dimensions recommends auto-tagging plus full UTM tags: utm_source=google, utm_medium=cpc, the campaign name and the campaign ID. Our guide on the tracking template vs final URL suffix explains which Google Ads field they go in.

A utm_medium list that matches GA4

These are medium values taken from Google’s default channel group rules, with the channel each one gives.

Medium you write GA4 channel What to know
cpc, ppc, paid_social, paid_search Paid Search, Paid Social, Paid Video or Paid Shopping Any medium that starts with “paid” or contains “cp” counts as paid. The source picks the channel. A source on no list gives Paid Other.
display, banner Display For banner and display ads on other sites.
social Organic Social For unpaid posts.
email Email e-mail and e_mail also work, but pick one.
referral Referral For links on partner sites.
affiliate Affiliates For affiliate program links.
sms SMS For text messages.

Words that look sensible in a meeting but are missing from Google’s rules: influencer, boosted, print, qr, newsletter, social_paid. With a source that is on no list, these end up in Unassigned. With a listed source, they can do something worse: utm_source=facebook&utm_medium=social_paid lands in Organic Social, so paid clicks get counted as free ones.

GA4 has no channel for print or QR codes. If you want them on their own line, keep qr as the medium and add a custom channel group in GA4 that names it.

A UTM naming convention template you can copy

Here is a one-page rulebook for a small store. Change the names to your own and keep it this short.

UTM rules — Northwind Outdoor (updated October 2026)

General
- Lowercase only. No spaces.
- Hyphen between words, underscore between parts.
- Every link has utm_source, utm_medium and utm_campaign.

utm_source (pick one)
google · bing · facebook · instagram · tiktok · pinterest · newsletter · partner-blog

utm_medium (pick one)
cpc (search ads) · paid_social (social ads) · social (unpaid posts)
email · referral · affiliate · display

utm_campaign = yyyymm_market_name
markets: us · ca
example: 202611_us_black-friday

utm_content = what the person clicked
examples: video-15s · carousel-boots · header-button

Two links built from it:

  • A Meta ad: ?utm_source=facebook&utm_medium=paid_social&utm_campaign=202611_us_black-friday&utm_content=video-15s
  • The newsletter: ?utm_source=newsletter&utm_medium=email&utm_campaign=202611_us_black-friday&utm_content=header-button

Both use the same campaign name, so GA4 shows Black Friday as one campaign across two channels.

You don’t have to type this up by hand. The UTM naming convention template builder turns your choices into a printable guide, checks each medium and source against GA4’s channel rules, and warns you before a value ends up in Unassigned. It also gives you a share link and a rules file your team can load into the link builders.

Let the ad platforms fill in the names

Typing campaign names by hand is where typos come from. Meta can fill parts of the tag for you with dynamic URL parameters. These are placeholders such as {{campaign.name}} and {{ad.name}} that Meta swaps for the real name when someone clicks. You enter them once in the ad’s URL parameters field:

utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}

Two things to watch:

  • The names in Ads Manager become your UTM values. A campaign called “Black Friday – US (new)” arrives in GA4 with its capitals, spaces and brackets. So the naming rule must apply to campaign and ad names inside the platform too, not just to links.
  • {{site_source_name}} uses short codes. Meta’s spec lists fb, ig, msg, an and th (Facebook, Instagram, Messenger, Audience Network and Threads). Only fb and ig are on GA4’s social list. If you use it as the source, paid clicks from the other three land in Paid Other. You can put it in utm_content instead and keep a fixed source such as facebook.

How to make the team actually follow it

Rules that live in someone’s head don’t survive the first freelancer. These steps keep a convention alive:

  1. Keep it to one page. If it doesn’t fit on one screen, people won’t read it.
  2. Put it where links get made: your link spreadsheet, your shared drive and your agency brief.
  3. Check links before launch. Paste new links into the UTM link checker. It finds capital letters, missing tags, a stray second ? and mediums GA4 won’t understand, and it gives you a fixed link for each one.
  4. Audit what is already live. Once a quarter, export your ad URLs, email links and social bio links and check them in bulk.
  5. Add values; don’t invent them. When you start on a new platform, add it to the source list first. One person owns the list.
  6. Start from today. A fixed link only helps the visits that come after the fix, so begin with links that are live right now.

If you only do three things this week: make everything lowercase, pick mediums from the table above, and check your live links once. Those three steps deal with the case, channel and broken-link problems described in this guide.

Frequently asked questions

What is a UTM naming convention?

It is a short written rulebook for your UTM tags: the allowed utm_source and utm_medium values, lowercase or not, which separator goes between words, and the pattern for campaign names (for example 202611_us_black-friday). You set it, not Google. But Google’s GA4 channel rules decide which values land in the right channel, so build the rulebook around them.

Are UTM parameters case sensitive?

Yes. Google’s URL builder help page says utm_source=google is different from utm_source=Google, so GA4 shows two rows. The channel rules themselves are not case sensitive, so the channel is the same, but your source and campaign reports still split. Use lowercase only.

What is the difference between utm_source and utm_medium?

Source is who sent the visit, such as facebook, google or newsletter. Medium is the type of traffic, such as paid_social, cpc or email. Google describes them as the referrer and the marketing medium on its URL builder page. GA4 uses them together to pick a channel. A few channels, such as Email and SMS, can match on one of them alone, so always fill in both.

What should I use as utm_medium for paid social ads?

paid_social is the clearest choice. Any medium that starts with “paid”, contains “cp”, or is ppc or retargeting counts as paid in Google’s channel rules. Pair it with a source on Google’s social list, such as facebook, instagram or tiktok, and GA4 shows Paid Social.

What is the difference between utm_content and utm_term?

Google’s URL builder page describes utm_content as a way to tell creatives apart and utm_term as the paid keyword. In practice, utm_content names the ad or link that was clicked, and utm_term is only useful for search ads.

How should I name utm_campaign so reports stay clean?

Use a fixed pattern, such as date, market and a short name: 202611_us_black-friday. Keep it lowercase, with no spaces. Google suggests matching the exact campaign name in the ad platform, and Meta can fill it in for you with a dynamic parameter. Avoid the words “shop”, “shopping” and “cross-network” unless you mean them, because GA4’s channel rules read campaign names.

Need help setting this up? Talk to EmproIT