UTM Parameters Explained: How to Track Your Marketing Campaigns
Analytics can tell you traffic came 'from Facebook' — but not which post or ad. UTM parameters fix that. Here's how the five tags work and how to use them without wrecking your data.
On this page
- What a UTM parameter actually is
- The five parameters, explained
- Source vs medium: the distinction people get wrong
- Build the URL correctly
- Naming conventions make or break your data
- Where to use UTMs — and where you must not
- UTMs, clean URLs, and SEO
- Reading the data once it's flowing
- Common mistakes to avoid
- Frequently asked questions
- The bottom line
Here's a frustration every marketer eventually runs into. You share a link four different ways — an email newsletter, an organic social post, a paid ad, and a partner's blog — and a week later your analytics cheerfully reports that a few hundred people arrived "from Facebook" and a chunk came "direct." Which of those four efforts actually worked? Without extra information, you genuinely can't tell.
UTM parameters are the extra information. They're the small tags you bolt onto a link so that when someone clicks it, your analytics knows exactly where the click came from and which campaign it belonged to. Used well, they turn vague traffic numbers into a clear scoreboard of what's driving results. Used carelessly, they quietly poison your reports with duplicated, mislabelled data. This guide covers both — how they work, and how to avoid the mistakes that make the data untrustworthy.
What a UTM parameter actually is
A UTM parameter is nothing more exotic than a query string added to the end of a URL. "UTM" stands for Urchin Tracking Module, a nod to Urchin, the analytics company Google bought and turned into Google Analytics. The tags don't change the page a visitor lands on; they simply travel along with the click so your analytics can read and record them.
Here's a tagged link with all the common parameters:
https://example.com/summer-sale
?utm_source=newsletter
&utm_medium=email
&utm_campaign=summer_sale_2026When someone clicks that, they land on your normal summer-sale page — but Google Analytics records that the visit came from your newsletter, via email, as part of the "summer_sale_2026" campaign. Multiply that across every channel and you finally get an honest answer to "what's working?"
The five parameters, explained
There are exactly five UTM parameters. Three you should use on essentially every campaign link; two are optional and mostly for paid ads and testing.
| Parameter | Answers | Example | Required? |
|---|---|---|---|
| utm_source | Where is the traffic from? | newsletter, facebook, google | Yes |
| utm_medium | What type of channel? | email, cpc, social | Yes |
| utm_campaign | Which initiative? | summer_sale_2026 | Yes |
| utm_term | Which paid keyword? | running+shoes | Optional |
| utm_content | Which version/link? | header_button | Optional |
- utm_source is the specific origin — the individual publication, platform, or partner. Think facebook, google, newsletter, or a partner's domain.
- utm_medium is the category of channel: email, cpc (paid search), social, referral, affiliate, display. This one matters more than people realise, because analytics tools use it to group traffic into channels automatically.
- utm_campaign ties everything to a single initiative — a launch, a sale, a webinar — so all the links across every channel roll up into one report.
- utm_term is used almost exclusively for paid search, to record the keyword you bid on.
- utm_content distinguishes two links that are otherwise identical — the header button versus the footer link, or version A versus version B of an ad.
Source vs medium: the distinction people get wrong
If there's one place UTMs go sideways, it's mixing up source and medium. Source is the specific place; medium is the type of channel. The same platform can be different mediums depending on how the link was shared:
| Scenario | utm_source | utm_medium |
|---|---|---|
| Weekly email newsletter | newsletter | |
| Organic Facebook post | social | |
| Paid Facebook ad | paid-social | |
| Google Ads search ad | cpc | |
| Link from a partner's blog | partnersite | referral |
| QR code on a printed flyer | flyer |
Notice that Facebook shows up as the source in two rows but with different mediums — once for the free post, once for the paid ad. That single distinction is what lets you compare organic reach against ad spend later.
Build the URL correctly
You could type these parameters by hand, but it's error-prone: one stray space, a capital letter, or a missing ampersand and the tracking silently breaks or splits into a second entry. A builder assembles and encodes the URL properly every time:
Try it right here
UTM Builder
Naming conventions make or break your data
This is the part almost everyone underestimates, and it's the single biggest determinant of whether your reports are usable. Analytics platforms — including Google Analytics 4 — treat UTM values as case-sensitive, exact-match text. To a report, Facebook, facebook, and FaceBook are three completely different sources.
A few rules keep the data clean:
| Avoid | Use instead | Why it matters |
|---|---|---|
| utm_source=Facebook | Case-sensitivity creates duplicate rows | |
| utm_campaign=Summer Sale | summer_sale | Spaces get encoded as %20 and look broken |
| utm_medium=e-mail / Email / newsletter | Inconsistent mediums fragment channel grouping | |
| utm_campaign=q3_promo_final_v2 | q3_promo | Keep it human-readable, not a file name |
Settle on a convention and write it down: everything lowercase, words separated by underscores or hyphens (just pick one), no spaces, and a standard vocabulary for mediums (email, cpc, social, referral, affiliate, display). Consistency beats cleverness every single time.
Where to use UTMs — and where you must not
UTMs belong on inbound links you control from outside your site: email campaigns, social posts, paid ads, partner and sponsorship links, QR codes, PDFs, and banner placements. Anywhere you're driving traffic to your site and want to know which effort gets the credit.
There's one place they cause real damage, though.
UTMs, clean URLs, and SEO
A common worry is whether all these query parameters hurt your search rankings. Directly, no — UTM parameters don't affect how a page ranks. But they can create a subtler problem: search engines may see page and page?utm_source=... as two different URLs, which wastes crawl budget and can muddy analytics. The fix is a self-referencing canonical tag on the page pointing to the clean version, so search engines consolidate them. We cover that and related housekeeping in our technical SEO checklist.
It's also worth separating two different URL concerns. UTMs live in the query string and are for tracking; the readable part of the URL — the slug — is for humans and SEO. Keep the base URL clean and descriptive with a proper slug, and let the UTMs ride behind the question mark. And when you're setting up how that link previews on social, a good set of meta tags ensures the shared post looks right regardless of the tracking tacked on.
Reading the data once it's flowing
In Google Analytics 4, tagged traffic shows up under Reports → Acquisition → Traffic acquisition, where the primary dimension is "Session source / medium" — exactly the source and medium you set. Switch the dimension to "Session campaign" to see performance rolled up by initiative. This is where good naming pays off: clean, consistent values produce a tidy, readable report; sloppy ones produce dozens of near-duplicate rows you have to mentally merge.
Give the data a little time, too. Attribution isn't always instant, and a click doesn't become a recorded session until the analytics tag fires on your page — which is one more reason to make sure your tagged links actually land on a page that loads your analytics.
Common mistakes to avoid
- Inconsistent capitalisation. The number-one report-wrecker. Lowercase everything, always.
- Tagging internal links. Restarts sessions and destroys original attribution. Only tag inbound links.
- Confusing source and medium. Source is the specific place; medium is the channel type. Keep them straight.
- Spaces and special characters. Use underscores or hyphens, never spaces, and avoid punctuation that has to be encoded.
- Reinventing campaign names. "spring_sale" and "Spring-Sale-2026" for the same push means two reports instead of one. Standardise and document.
- Putting sensitive data in UTMs. Parameters are visible in the URL and stored in analytics — never include names, emails, or anything private.
Frequently asked questions
The bottom line
UTM parameters are the difference between guessing which of your marketing efforts worked and actually knowing. The mechanics are simple — five tags, three of them essential — but the value lives entirely in the discipline around them: lowercase everything, keep source and medium straight, never tag internal links, and document your naming so the whole team speaks the same language.
Get that right and every campaign becomes measurable. Build your tagged links with the UTM Builder, keep the underlying URLs clean with the Slug Generator, and everything runs right in your browser with nothing to sign up for — so you can start tracking what actually moves the needle today.
Hands on
Tools mentioned in this article
More guides
Keep reading

What is JSON and how to format it correctly
A practical guide to JSON syntax, the mistakes that break it, and how a formatter turns a wall of text into something you can actually debug.

How to calculate EMI on any loan
The EMI formula explained in plain terms, a worked example, and what actually happens to your money over the life of a loan.

Password best practices in 2026
Why length beats complexity, how passphrases work, and a realistic system for managing passwords without losing your mind.
Put it into practice
Every guide comes with free tools to match.
No signup, no uploads — everything runs in your browser.
