UTM naming conventions that keep analytics clean

A UTM naming convention for a whole team: what goes in source, medium and campaign, how GA4 files each medium, and the mistakes that split reports.

On this page

UTM parameters are the cheapest analytics tool there is: five words in a link tell you which email, post or poster brought a visitor. They are also easy to ruin. One person writes Facebook, another facebook, a third fb, and the campaign's results are split across three rows that nobody adds up. This article proposes a convention you can adopt as is, shows how GA4 sorts each medium into a channel using Google's published rules, and lists the mistakes that quietly break reports. Every link and channel below was produced by the UTM link builder.

The five parameters, in one sentence each

ParameterAnswersGood values
utm_sourceWho sent the visitor?newsletter, facebook, zalo, partner-blog, google
utm_mediumWhat kind of traffic is it?email, social, cpc, referral, display, affiliate, sms
utm_campaignWhich campaign?autumn-sale-2026, tet-2027-gifts, webinar-2026-11
utm_contentWhich link or creative within it?hero-button, footer-link, video-b
utm_termWhich keyword or audience?pour-over-kettle, lookalike-2pct

utm_id is a sixth, optional parameter that ties the campaign to cost data you import into GA4. Source, medium and campaign are the three that must always be present.

The convention

  1. Lower case only. Reports compare text exactly, so Facebook and facebook are two sources. GA4's channel rules ignore case, but the source and campaign dimensions do not.
  2. Dashes between words, no spaces. A space works, encoded as %20, but sooner or later someone types the same name with a dash. Pick one separator for the whole company. This article uses dashes.
  3. Plain ASCII. Accents and emoji are encoded correctly but are awkward to filter on. Write tet-2027-qua-tang, not Tết 2027 & quà.
  4. Medium from a fixed list. Only a few media are recognised by GA4's default channels (next section). Do not invent newsletter or qr as media.
  5. Campaign names with a date. autumn-sale will be reused next year; autumn-sale-2026 will not collide.
  6. A shared sheet. Keep the allowed sources and media in one place and build links from it, or paste the list into the builder's batch tab.

The difference is visible in the link. Typed as people naturally write it:

https://shop.example.vn/ca-phe?size=500g&utm_source=Zalo%20OA&utm_medium=social&utm_campaign=T%E1%BA%BFt%202027%20%26%20qu%C3%A0&utm_content=banner%201#reviews

With the convention (the builder's "lower case" and "replace spaces with -" options do it for you):

https://shop.example.vn/ca-phe?size=500g&utm_source=zalo-oa&utm_medium=social&utm_campaign=tet-2027-qua-tang&utm_content=banner-1#reviews

Both work. Only the second is easy to read in a report, type again next month, and filter without regular expressions. Note that the existing size=500g parameter and the #reviews fragment are preserved; tags placed after # would never reach analytics at all.

How GA4 files each medium

GA4 puts every visit into a default channel using fixed rules that Google publishes in its "Default channel group" help article (checked 14 October 2026). For UTM-tagged traffic, the medium does most of the work:

source / mediumGA4 default channel
newsletter / emailEmail
mailchimp / newsletterUnassigned
facebook / socialOrganic Social
zalo / socialOrganic Social
facebook / paid-socialPaid Social
fb / cpcPaid Social
partner-blog / referralReferral
poster / qrUnassigned
google / cpc, campaign q4-shopPaid Shopping

The rules in brief: a medium matching cpc, ppc, retargeting or anything starting with paid is a paid channel, split into Search, Social, Video, Shopping or Other by the source; display, banner, expandable, interstitial and cpm are Display; social, social-network, social-media and sm are Organic Social; referral, app and link are Referral; anything containing email in source or medium is Email; affiliate, audio and sms have channels of their own. Anything else is Unassigned.

Two rows deserve a second look. newsletter as a medium is Unassigned, because the Email rule looks for the word "email". And a campaign whose name contains "shop" after a non-letter, such as q4-shop, is filed under Shopping, because GA4 also checks campaign names for shopping. Name it q4-store-sale if it is not a shopping campaign.

Batches: where inconsistency creeps in

A single newsletter can have twenty links. Tag them in one go: paste a CSV with a header row such as url,content into the builder's batch tab, set source, medium and campaign once, and download the tagged CSV. The builder also compares values across the batch and flags pairs like Facebook and face_book that were probably meant to be the same.

Common mistakes

  • Tagging internal links. A UTM on a link from your own home page starts a new session credited to that campaign and erases the real source. Tag only links that live outside your site.
  • Media GA4 does not know. newsletter, qr, print, influencer all end in Unassigned. Use a recognised medium or create a custom channel group.
  • Mixed case and spelling. Email, email and e-mail are three rows in source/medium reports, even though all three reach the Email channel.
  • Putting the source in the medium. utm_medium=facebook tells GA4 nothing about the kind of traffic. Facebook is a source; social or cpc is the medium.
  • Tags after the fragment. page#section?utm_source=x is never sent. Parameters go before #.
  • Redirects that drop the query. Some link shorteners and HTTP-to-HTTPS redirects strip parameters. Click the final link and check the address bar.

Try it

Open the UTM link builder, paste a landing page, and set source, medium and campaign. Watch the GA4 channel line as you change the medium, then use "Make a QR code" to put the tagged link on a poster with the QR code generator.

Tools mentioned in this article

Back to the blog