Your analytics dashboard says 2,000 people visited your landing page last week. But which email, which social post, which ad actually sent them? Without UTM parameters, you are guessing. With them, every click carries its own return address.
What UTM parameters are
UTM parameters are five short tags you append to a URL's query string. They do not change where the link goes or what the visitor sees — they simply ride along and tell your analytics tool where the click came from. The name comes from Urchin Tracking Module, a relic of the analytics company Google acquired in 2005, but the system is now the universal standard: Google Analytics, Matomo, HubSpot, and nearly every marketing tool reads them the same way.
A tagged link looks like this: https://example.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale. Strip off everything after the question mark and the link is identical. But the analytics tool sees the tags and files that visit under newsletter, email, and spring_sale instead of lumping it into a vague bucket like "direct" or "referral."
The five parameters, and which ones are required
Only three parameters are required for a tag to be useful. The other two are optional but valuable once your campaigns grow.
- utm_source (required): who sent the traffic — the specific site, app, or sender. Examples: google, facebook, newsletter, partner-blog.
- utm_medium (required): the channel or type of traffic. Examples: email, social, cpc, referral, qr-code. Keep this list short and consistent; it becomes your main reporting dimension.
- utm_campaign (required): the campaign or promotion the link belongs to. Examples: spring_sale, product_launch, black_friday.
- utm_term (optional): the paid keyword that triggered the click. Mostly used in search ads; skip it for social and email links.
- utm_content (optional): which variant of the link was clicked, for A/B testing. Examples: hero_button, footer_link, version_a. This is how you learn which button in the same email actually works.
The order of parameters does not matter to analytics tools, but keep a consistent order in your own links anyway — it makes them easier to read and spot-check. Always put the question mark before the first parameter and an ampersand between each pair, and never put UTM tags on internal links within your own site: they overwrite the original source and your reports will claim every visitor came from your own homepage.
Worked example: one launch, five links, one clean report
Say you are launching a spring sale and promoting it in five places. Without tags, analytics shows a pile of traffic with no story. With tags, each channel gets its own line:
- Email newsletter:
?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale - Instagram bio link:
?utm_source=instagram&utm_medium=social&utm_campaign=spring_sale - Paid search ad:
?utm_source=google&utm_medium=cpc&utm_campaign=spring_sale&utm_term=running_shoes - Partner blog post:
?utm_source=partner_blog&utm_medium=referral&utm_campaign=spring_sale - Printed flyer QR code:
?utm_source=flyer&utm_medium=qr-code&utm_campaign=spring_sale
When the sale ends, the report answers the question that matters: the email drove 800 visits and 60 orders, Instagram drove 1,200 visits and 12 orders, and the flyer drove 40 visits and zero orders. That is not trivia — it decides where next quarter's budget goes. The email list converts; the flyer does not. Without tags, all five channels would have blended into an unhelpful average.
Naming conventions: the discipline that saves your reports
UTM tagging fails most often not from technical errors but from sloppy names. Analytics treats Facebook, facebook, and fb as three different sources, so one campaign fragments into a dozen rows. Fix this before your first tagged link with three rules:
- Lowercase, always. No capital letters anywhere in a UTM value, ever. Decide once and it never needs revisiting.
- Hyphens or underscores, never spaces. Spaces become %20 in URLs and make reports ugly and error-prone. Use
spring_sale, notspring sale. - A short approved list for medium. Limit medium to a handful of values — email, social, cpc, referral, qr-code — and never invent a new one on the fly. Source and campaign can vary freely; medium should not.
Write the conventions down in a shared doc and use a builder tool that enforces them. A spreadsheet of past campaigns helps too: when someone asks whether the campaign is called spring_sale or spring-sale, the answer should already exist instead of being guessed fresh each time.
Reading UTM data in analytics
In Google Analytics 4, tagged traffic appears in the Traffic acquisition report, broken down by session source, medium, and campaign. Filter by campaign to compare channels for one promotion, or by source and medium to see which combination performs best overall. The key metrics to watch alongside traffic are conversion rate and revenue per session, not raw visits — a channel that sends thousands of visitors who never buy is worse than a small channel that converts.
One caution: UTM parameters survive sharing. If a visitor copies a tagged link and pastes it elsewhere, the new clicks carry the old tags, and your report credits the original source. It is a minor distortion for most sites, but it is why you should avoid tagging links you expect people to share widely, and why short links or redirect tools are often used to hide long tagged URLs in print and social posts.
UTM parameters are free, take seconds to add, and turn "traffic went up" into "this exact email drove those sales." Tag consistently, keep your naming clean, and never tag an internal link — and your marketing decisions will finally rest on evidence instead of hunches.
Frequently asked questions
Do UTM parameters change what the visitor sees?
No. The tags are invisible to visitors and do not change the page content or destination. They only add tracking information that your analytics tool reads. The only visible difference is a longer URL in the address bar.
Should I add UTM parameters to links inside my own website?
No. Tagging internal links overwrites the visitor's original source, so your reports will wrongly credit your own site instead of the email, ad, or post that actually brought them. Reserve UTM tags for links that point to your site from somewhere else.
Which UTM parameters are required?
Three: utm_source, utm_medium, and utm_campaign. The source names who sent the traffic, the medium names the channel, and the campaign names the promotion. Utm_term and utm_content are optional extras for paid keywords and A/B testing.
Why is my campaign split into several rows in analytics?
Usually inconsistent naming: Facebook, facebook, and fb are treated as three different sources. Fix it by using lowercase values, hyphens or underscores instead of spaces, and a short approved list for medium, then keep those conventions for every link.