You post the same link on Instagram, in a newsletter and in a paid ad. A week later analytics says you got 400 visitors β but where did they actually come from? Without a way to tag each link, you can't tell. That's exactly the problem UTM parameters solve. They're small bits of text you bolt onto the end of a URL so your analytics tool can attribute every visit to the specific campaign, channel and creative that produced it.
This guide walks through what each parameter means, a naming convention that will save you future headaches, the mistakes that quietly ruin your data, and how it all surfaces in GA4. If you'd rather not hand-type query strings, there's a free UTM builder at the end.
UTM stands for Urchin Tracking Module β a leftover name from Urchin, the analytics company Google bought that became Google Analytics. A UTM parameter is just a key=value pair added to a URL after a ?. Multiple pairs are joined with &. A fully tagged link looks like this:
https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=summer_sale
The part before the ? is your normal page. Everything after it is metadata the browser passes along; your page loads the same, but analytics reads those values and files the visit accordingly. There are five recognized parameters, three of which you'll use almost every time.
| Parameter | Answers | Required? | Example value |
|---|---|---|---|
utm_source | Where is the traffic coming from? | Yes | google, newsletter, linkedin |
utm_medium | What type of channel is it? | Yes | cpc, email, social, referral |
utm_campaign | Which specific campaign or promo? | Recommended | summer_sale, launch_2026 |
utm_term | Which paid keyword? | Optional | running+shoes |
utm_content | Which creative/link variant? | Optional | hero_button, banner_a |
Source is the specific origin β the newsletter name, the ad network, the referring site. Medium is the broad category that source belongs to. Together they answer "this visit came from this place via this kind of channel." Campaign groups everything under one initiative so you can total up a launch or a seasonal push regardless of channel. Term is mostly for paid search keywords, and content is your A/B differentiator β use it when the same campaign has two buttons, two images or two placements and you want to know which one won.
The single biggest source of messy UTM data is inconsistency. Analytics treats Facebook, facebook and FB as three different sources, so your one channel gets split into three rows that never add up. Pick rules and never break them:
Email and email never diverge.summer_sale, not summer sale). Spaces get encoded to %20 and look ugly.email, social, cpc, referral, affiliate β and reuse it forever.newsletter while you use email-list.cpc or paid_social, not social, or you'll lump free and paid together.utm_source=facebook&utm_medium=facebook tells you nothing new; medium should be the category, not a repeat of source.Google Analytics 4 maps the parameters to dimensions you'll filter and group by in reports:
utm_source β Session sourceutm_medium β Session mediumutm_campaign β Session campaignutm_content β Manual ad contentutm_term β Manual termYou'll find them under Reports β Acquisition β Traffic acquisition, or build a free-form exploration and add "Session source / medium" as the dimension. GA4 attributes on a session basis, so give it a little time β freshly tagged links may take a few hours to appear, and attribution can differ slightly from the raw click counts your ad platform reports because the two count in different ways.
Do UTM parameters slow down or break my page? No. They're ignored by the page itself; only analytics reads them. The page loads identically with or without them.
Are UTMs case-sensitive? Yes β Email and email are counted separately, which is why sticking to lowercase matters.
Which parameters are actually required? Source and medium are the practical minimum; campaign is strongly recommended. Term and content are optional extras for paid keywords and A/B variants.
Can I use UTMs on links I don't own? Only if the destination is a page whose analytics you control. Tagging a link to someone else's site does nothing for you.