UTM Parameters Explained in Plain English (With a Copy-Paste Template)

You email the same offer to your list. You post it on LinkedIn too. A week later, 400 people have bought. Which one did the work?
UTM parameters are short labels you bolt onto the end of a link, so your analytics tool knows where each visitor came from. They sit after the question mark in the address. They change nothing about the page your visitor actually sees.
The idea is simple. The part almost everybody gets wrong is the naming convention.
What does each UTM parameter do?
Google recognises nine of them. Most people only ever need five.
| Parameter | What you put in it | Example |
|---|---|---|
utm_source |
Who sent the traffic | newsletter |
utm_medium |
The type of channel | email |
utm_campaign |
What you were promoting | summer-sale-2026-08 |
utm_term |
The paid keyword you bought | running-shoes |
utm_content |
Which link inside one send | header-button |
utm_id |
A campaign ID, for cost uploads | abc123 |
utm_source_platform |
The buying platform | Display & Video 360 |
utm_creative_format |
The creative type | video |
utm_marketing_tactic |
The targeting you used | remarketing |
Three of those nine will quietly waste your time. Google accepts utm_creative_format and utm_marketing_tactic, but says neither is currently reported in GA4. The value goes in and nothing comes out.
utm_id is real, but it maps to the campaign ID field. That field is not in the standard reports. You need a custom report or an exploration to see it.

Which ones are required?
None of them, strictly speaking. Google recommends rather than requires.
Nothing is technically required, but leave one out and GA4 fills the gap with (not set). Google's advice is to use source, medium and campaign on every link. Its help page asks for utm_id and utm_source_platform too, if you are tagging at all.
One warning before you start. If you run Google Ads, do not hand-tag your ad links. Google says that when auto-tagging and manual tagging are both there, the auto-tagged values win. Your careful UTMs are simply ignored.
The naming convention you can copy
This is the section that genuinely saves you time. Pick the rules once, write them down, and stop arguing about them.
- Lowercase everything. Google is blunt about this: "Parameter values are case sensitive, e.g.
utm_source=googleis different fromutm_source=Google." Two spellings make two rows in your report. - Hyphens between words. Never spaces. A space turns into
%20and the link looks broken. - One spelling per thing.
linkedinevery time. NotLinkedInthis week andlinked-innext week. - Dates live in the campaign name. Nowhere else.
utm_mediumcomes from a fixed list. Never invent one. The next section says why.utm_contentis the only field that varies inside a single send.
Here is exactly what belongs in each field.
| Field | What goes in it | Shape | Example |
|---|---|---|---|
utm_source |
The exact place the link sits | lowercase, hyphens | newsletter, linkedin, table-tent |
utm_medium |
The channel type, from Google's list | lowercase, from the list | email, social, cpc |
utm_campaign |
What you promote, plus the month | name-yyyy-mm |
summer-sale-2026-08 |
utm_content |
Which link inside the same send | lowercase, hyphens | header-button, footer-text |
utm_term |
The paid keyword. Paid search only | lowercase, hyphens | running-shoes |
Three worked examples. Copy them and substitute your own words.
An email newsletter:
?utm_source=newsletter&utm_medium=email&utm_campaign=summer-sale-2026-08&utm_content=header-button
A LinkedIn post you did not pay for:
?utm_source=linkedin&utm_medium=social&utm_campaign=case-study-2026-08
A QR code on a table tent:
?utm_source=table-tent&utm_medium=referral&utm_campaign=menu-qr-2026-08&utm_content=qr-code
Print has no channel of its own in GA4. So referral is the nearest medium that matches a real rule, and the visit lands in a named row. Put the word qr in the source or the content instead, where it costs you nothing.
Now count the first example. It is 98 characters of label, stuck on the end of a page address. All of it shows in a text message or a social caption, which is why link length changes who clicks.
That is why tagged links and short links usually travel together. On the free plan, clik.so's UTM builder joins the parameters up and shortens the result in a single step.
Google now cleans up some of the mess for you
On 11 June 2026, Google added a Source Group dimension to GA4. It rolls messy source values into one. The release note gives the example of facebook, fb and Meta-facebook all becoming Facebook. Google says it was applied to old data too.
That only helps with the source field, and only for platforms Google recognises. It does nothing for utm_medium. It will not tidy up a name you made up yourself. Keep the convention.
Your utm_medium decides your GA4 channel
This is the one that quietly costs people money.
GA4 does not read your campaign name to work out the channel. It reads utm_medium. Google publishes the rules, and they are literal string matches.

Invent a value and nothing breaks. No error message appears anywhere. The visit still arrives, with a perfectly good source and campaign name.
It just falls through every rule and lands in Unassigned. That is the label Google uses when no channel rule matches the data. In practice the usual culprits are newsletter, e-blast, qr, partner and blog.
A few of the rules are wider than they look:
email,e-mailande_mailall reach Email.social,social-media,smandsocial networkall reach Organic Social.referral,appandlinkall reach Referral.
GA4 added an AI Assistant channel in May 2026
If your channel list does not have this row, your list is out of date.
On 13 May 2026, Google added an AI Assistant channel to the default channel group. The release note says traffic from chatbots like ChatGPT, Gemini and Claude now gets its own row.
You do not tag this one yourself. GA4 assigns it automatically. When the referrer matches a recognised AI assistant, the medium becomes ai-assistant and the campaign becomes (ai-assistant).
Those visits used to land in Referral, or in Direct. So a year-on-year comparison of either row may look strange for reasons that have nothing to do with your work. Google's note does not say whether older visits were moved, so do not assume either way.
Do Safari and Firefox strip UTM parameters?
No. This is the most repeated misunderstanding in the entire subject.
Safari and Firefox strip click identifiers, which are the per-person IDs ad platforms attach. They do not strip utm_ campaign parameters.
WebKit, the team that builds Safari, wrote the answer in its own blog post about Link Tracking Protection. On a parameter used only for campaign attribution, it says: "Safari allows such parameters to pass through."
Firefox has two separate features and almost every article mixes them up.
The first strips tracking parameters when someone clicks a link. Mozilla documents it and publishes the live list. Checked in September 2026, that list held no utm_ entries at all. The names on it are gclid, fbclid, msclkid and their relatives.
The second is a menu item. A user right-clicks your link, picks Copy Link Without Site Tracking, and the copied version does lose its UTMs. That is a person choosing to clean the link before passing it on. It costs you the second-hand click, not the first one.
Do UTM parameters hurt your SEO?
No, and the anxiety behind the question is outdated.
Adding UTM parameters to links that point at your site does not trigger a duplicate-content penalty. Google groups the parameter versions with the clean address and picks one to show in search.
It is confident enough about this to have stopped asking. Google retired the Search Console URL Parameters tool in April 2022. The reason given: it had become much better at working out which parameters actually matter.
Two honest limits. "No penalty" is not the same as "no effect" — a flood of parameter versions can waste crawl budget. And the tidy fix is a rel=canonical tag, one line in your page's HTML that names the version you want ranked. Point it at the clean address.
Common questions
Which UTM parameters should I actually use?
Source, medium and campaign on every link. Add utm_content when two links in one send point at the same page. Add utm_term for paid search only. Google also recommends utm_id and utm_source_platform, but you need those only if you upload ad cost data.
Do UTM parameters work outside Google Analytics?
Mostly, yes. They are plain text in the address, so any tool that reads the landing page URL can pick them up. The channel rules in this post are GA4's own, though. A different tool may sort the same medium into a different bucket.
Why does my link tool report more clicks than GA4 reports sessions?
They count different things. A click is a request to your short link. A session is a visit that GA4 managed to record on the page. Bots, prefetching and blocked scripts all pull the two apart, and we took that gap apart here.
Can UTM parameters tell me which channel made the sale?
Only partly. They tell you which link the buyer clicked. They say nothing about the five touches before it, so attribution across channels needs more care than one tag. Clean tagging is still the cheapest honest measurement you have.
Start with one campaign
Pick your next send. Tag it with the five fields above, in lowercase, with hyphens between words. Then open GA4 two days later and check which channel row it landed in.
clik.so's free plan includes the UTM builder and tracks 2,000 clicks a month, with no card needed. If you would rather assemble the address by hand, Google's own Campaign URL Builder is free and does the joining-up for you.

