What are UTM parameters?
UTM parameters are short tags you add to the end of a URL so analytics tools can tell you exactly where a visitor came from. When someone clicks a tagged link, tools like Google Analytics read the parameters and file the visit under the right source, medium, and campaign — instead of lumping it into "direct" or a vague referral.
The name comes from Urchin Tracking Module, a leftover from Urchin,
the analytics software Google acquired and turned into Google
Analytics. The convention stuck, and today virtually every analytics
platform — GA4, Matomo, Plausible, Mixpanel, HubSpot — understands the
same five utm_ parameters. That universality is the whole point:
tag a link once, and every tool downstream agrees on where the click came
from.
Without UTM tags, a click from your newsletter, a paid ad, and a QR code on a poster can all look identical in your reports. With them, you can answer the questions that actually matter: which channel drives signups, which campaign paid for itself, and which one you should quietly retire.
The five UTM parameters explained
Three parameters are essential — source, medium, and campaign — and two are optional refinements for ads and A/B tests:
| Parameter | What it identifies | Example |
|---|---|---|
utm_source | Where the traffic comes from — the specific site, platform, or sender | newsletter, google, linkedin |
utm_medium | The channel type — how the link reached the visitor | email, cpc, social, qr |
utm_campaign | The specific campaign, promotion, or initiative | spring_sale, launch_2026 |
utm_term | The paid search keyword you bid on (optional) | running_shoes |
utm_content | Which variant or placement was clicked (optional) | header_cta, banner_v2 |
A useful mental model: medium is the category,
source is the specific place within it, and
campaign is the reason the link exists. A promo link in
your April newsletter might be
utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale, while the same promo on LinkedIn becomes
utm_source=linkedin&utm_medium=social&utm_campaign=spring_sale. Same campaign, different source and medium — and your reports can
finally compare the two.
Naming conventions that save your reports
UTM tagging fails quietly. Nothing breaks when two people tag the same channel differently — your reports just split into fragments that are painful to stitch back together. A few habits prevent almost all of it:
- Lowercase everything. Analytics tools are case-sensitive,
so
Email,email, andEMAILshow up as three different mediums. Pick lowercase and never look back. - Use underscores, not spaces. Spaces get encoded as
%20and make URLs ugly and error-prone.spring_salebeatsSpring Saleevery time. - Agree on a source/medium taxonomy. Decide once whether
paid social is
utm_medium=cpcorpaid_social, whether your newsletter source isnewsletteror the tool's name, and write it down. - Keep a shared spreadsheet. Log every tagged link with its parameters and destination. It doubles as your taxonomy reference and makes it trivial to spot inconsistencies before they reach your reports.
Common UTM mistakes
- Using UTMs on internal links. Never tag links that point from one page of your site to another. Clicking a UTM-tagged internal link starts a new session in most analytics tools, which breaks attribution — the visitor who arrived from a paid ad suddenly looks like they came from your homepage banner. Reserve UTMs for links that live outside your site.
- Inconsistent casing and spelling.
Facebook,facebook, andfbsplit one channel into three report rows, and each row looks smaller than the channel really is. Consistency matters more than which convention you pick. - Forgetting UTMs on email and QR campaigns. These are exactly the channels analytics tools can't identify on their own — email clicks often show up as direct traffic, and QR scans almost always do. If you print a QR code on a flyer without a tagged URL, those scans vanish into "direct" forever.
Using UTMs with forms
If you share a form — a survey, a signup sheet, a lead generation form — UTM parameters tell you which channel actually drives responses. Tag the form link you put in your newsletter differently from the one you post on social, and you'll see at a glance whether email or social fills your pipeline. That's the difference between "we got 80 responses" and "email brought 62 of our 80 responses, so let's send a follow-up."
The same applies when you embed a form on your website and drive traffic to that page from multiple campaigns. Pair tagged links with form analytics and you can trace a response all the way back to the ad, email, or post that produced it — which is what turns form data into marketing decisions.