UTM parameters explained: how to actually use them
UTM parameters are the little query strings you stick on a URL so your analytics tool knows where the visitor came from. The mechanic is simple. The hard part is using them consistently enough that the data is actually useful three months later. Here's the working approach.
The basic idea
You share a link in your newsletter. The link looks like this:
https://yoursite.com/sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring-2026
When someone clicks it and lands on your page, any analytics platform that reads UTM parameters records:
- Source: newsletter
- Medium: email
- Campaign: spring-2026
Now in your analytics dashboard, you can see "Newsletter spring 2026 brought 412 clicks and 38 signups." Without UTM, that traffic shows up as "Direct" or "Referral" and you can't tell which channel actually worked.
The five UTM parameters
| Parameter | Required? | Purpose | Example |
|---|---|---|---|
utm_source | Yes | Where the traffic comes from | newsletter, partner-blog |
utm_medium | Yes | Marketing channel / format | email, social, cpc, organic |
utm_campaign | Yes | Specific campaign or promo | spring-2026, launch-week |
utm_term | Optional | Paid search keyword | running-shoes |
utm_content | Optional | A/B test variant or specific ad | header-cta, blue-button |
Naming conventions that don't break
This is where most people lose. Three months in, your reports show newsletter, Newsletter, NEWSLETTER, News-letter, and news as five separate sources. Each one looks like 20% of your traffic when really they're all the same thing.
Pick a convention on day one and stick to it:
- All lowercase. Analytics tools are case-sensitive.
Emailandemailare different. - Hyphens, not underscores or spaces.
spring-2026, notspring_2026orspring%202026. - Short and predictable. Future you should be able to guess the value without checking notes.
- Source = the platform/property name. Short, lowercase identifiers (not full URLs or display names).
- Medium = the channel type. Standard values:
email,social,cpc(paid search),organic(organic search),display,affiliate,referral. - Campaign = the specific promotion. Tied to a specific push:
spring-2026-sale,launch-week,black-friday-2026.
The simple rule of thumb
You should be able to answer "what does this UTM mean?" in 6 months without checking notes. If the values are cryptic to future-you, they're broken.
What to NEVER put in UTMs
- Personal information. Email addresses, names, user IDs. They end up in analytics logs forever, exposed to anyone with dashboard access, and forwarded if the recipient shares the link.
- Secrets or tokens. Same reason. UTMs are URL parameters — anyone can see them.
- Internal links. Don't UTM-tag your own internal navigation. Each click "resets" the original source. If a user comes from a search engine, clicks an internal link with
utm_source=internal, the source is overwritten and the original attribution is lost. Use event tracking for internal clicks, not UTM.
Three real-world setups
Newsletter campaign
?utm_source=newsletter&utm_medium=email&utm_campaign=weekly-2026-w22
Source: which list. Medium: how it was delivered. Campaign: which send.
Paid search ads
?utm_source=search-ad&utm_medium=cpc&utm_campaign=running-shoes-summer&utm_term=marathon-shoes&utm_content=ad-variant-b
Standard for paid search. utm_term matches the keyword, utm_content identifies which ad variant.
Social post
?utm_source=social-network&utm_medium=social&utm_campaign=launch-week-2026
Source = platform. Medium = channel type. Campaign = which push.
Build clean UTM links in 30 seconds
Fields, presets, validation, copy button. Recent links save locally.
Common mistakes
- Typos.
utm_souce(missing r) → analytics records "(not set)" and the tracking is silently lost. A builder tool prevents this. - Inconsistent values. "newsletter" today, "Newsletter" next week, "email-list" the week after. All look like different sources in reports.
- UTM on internal links. See above. Overwrites original source.
- Mixing UTM and email tracking parameters. Many email platforms auto-add their own tracking params. Decide whose tracking wins and turn the other off, or you'll double-count.
- Forgetting UTMs entirely. Best UTM strategy is consistent use. The data is only as good as the labels.
Quick checklist for a clean setup
- Document your source / medium / campaign vocabulary in a shared place.
- Use a builder tool so you can't typo the parameter names.
- Lowercase everything, hyphens between words.
- Never put personal data in any UTM field.
- Never UTM-tag your own internal links.
- Audit your analytics weekly for the first month so inconsistent naming gets caught before it spreads.