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
| Parameter | Answers | Good values |
|---|---|---|
utm_source | Who sent the visitor? | newsletter, facebook, zalo, partner-blog, google |
utm_medium | What kind of traffic is it? | email, social, cpc, referral, display, affiliate, sms |
utm_campaign | Which campaign? | autumn-sale-2026, tet-2027-gifts, webinar-2026-11 |
utm_content | Which link or creative within it? | hero-button, footer-link, video-b |
utm_term | Which 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
- Lower case only. Reports compare text exactly, so
Facebookandfacebookare two sources. GA4's channel rules ignore case, but the source and campaign dimensions do not. - 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. - Plain ASCII. Accents and emoji are encoded correctly but are awkward to filter on. Write
tet-2027-qua-tang, notTết 2027 & quà. - Medium from a fixed list. Only a few media are recognised by GA4's default channels (next section). Do not invent
newsletterorqras media. - Campaign names with a date.
autumn-salewill be reused next year;autumn-sale-2026will not collide. - 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#reviewsWith 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#reviewsBoth 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 / medium | GA4 default channel |
|---|---|
newsletter / email | |
mailchimp / newsletter | Unassigned |
facebook / social | Organic Social |
zalo / social | Organic Social |
facebook / paid-social | Paid Social |
fb / cpc | Paid Social |
partner-blog / referral | Referral |
poster / qr | Unassigned |
google / cpc, campaign q4-shop | Paid 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,influencerall end in Unassigned. Use a recognised medium or create a custom channel group. - Mixed case and spelling.
Email,emailande-mailare three rows in source/medium reports, even though all three reach the Email channel. - Putting the source in the medium.
utm_medium=facebooktells 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=xis 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.