UTM parameters explained: track every campaign properly
UTM parameters are how Google Analytics knows a visit came from your newsletter and not from Instagram. They are free, standard and horribly ugly in a message. This guide covers the three parameters that matter, the naming discipline that keeps reports readable, and the short-link trick that hides the ugliness.
The three parameters that matter
- utm_source — where the traffic comes from: newsletter, instagram, google, partner-x.
- utm_medium — the channel type: email, social, cpc, qr, sms.
- utm_campaign — the initiative: summer-sale-2026, launch, black-friday.
- (utm_term and utm_content exist for keyword and variant testing — use them only when you actually A/B test.)
Naming rules that save your reports
- Lowercase everything: "Email" and "email" are two different rows in GA4.
- No spaces — use hyphens.
- Agree the vocabulary once (a shared sheet) and never improvise.
- Be consistent across the team: the discipline IS the tool.
The short-link trick
A full UTM URL is 120+ characters of noise. Build it, then shorten it: the audience sees l-k.us/spring, Google Analytics receives every parameter intact after the redirect. One short link per channel also means Link Us counts clicks per channel on its own — a free first layer of analytics that works even where GA4 cannot see (print, QR, SMS).
Common mistakes
- Using UTMs on internal links: they reset the session and corrupt attribution. Never.
- utm_source=facebook for paid AND organic: split with utm_medium=cpc vs social.
- Forgetting UTMs on QR codes: medium=qr is exactly how you prove print works.
- Changing names mid-campaign: the data splits into two rows forever.
Related guides
What is a URL shortener and how does it work?
How to create a free QR code (no sign-up, no watermark)
Dynamic QR codes: print once, change the destination anytime
Try it now — it's free
Shorten a link in one click, no sign-up needed. Or create a free account for dynamic links and QR codes you can edit anytime.