Blog
UTM parameters explained, with the rules that stop them rotting
The five utm_ tags, what each one is really for, why utm_source is not optional, and how to attach them to a short link so the visitor never sees them.
By Wasim Idrishi · Updated · 4 min read
A UTM parameter is a query string tag that travels with a click and tells the analytics tool on the other end where
the click came from. Five of them exist, they are plain text, and nothing validates them. That last part is why most
campaign reports are a mess: Instagram, instagram, IG and insta are four sources as far as any analytics
tool is concerned.
What each tag is for
| Parameter | Answers | Good values |
|---|---|---|
utm_source | Which specific place | instagram, newsletter, partner_blog |
utm_medium | Which kind of channel | social, email, cpc, qr, print, sms |
utm_campaign | Which push | diwali_2026, launch_v3 |
utm_content | Which link, when two share the rest | header_button, footer_link |
utm_term | Which paid keyword | usually empty |
Source and medium are the pair that carry the weight. Medium should be a short closed list you decide once and never
extend casually — the moment you have both social and social-media, every report needs a mental find-and-replace.
Source is the specific origin inside that medium.
Campaign is the thing you would name in a meeting. Content is the tiebreaker, and it is the tag people skip and then regret: two links to the same page in the same email, untagged, are one row in the report forever.
The ones nobody mentions
Google Analytics 4 also recognises a handful of newer parameters beyond the classic five: utm_id for a campaign
identifier that survives a renamed campaign, plus utm_source_platform, utm_creative_format and
utm_marketing_tactic for the ad-platform metadata that used to be crammed into utm_content.
Most people should ignore all four. The exception is utm_id: if you run the same campaign across several tools and
each of them names it slightly differently, a stable id is the only thing that lets you stitch the rows back
together later. Set it once, keep it forever, and let the human-readable campaign name change as often as marketing
wants it to.
The rules that keep them useful
Lower case everything, always
Not a style preference. GA4 reports
Emailandemailas separate sources and there is no way to merge them afterwards without reprocessing.Underscores, not spaces
A space becomes
%20in the URL and an ugly value in the report. Pick underscore or hyphen and never mix them.Write the medium list down
Six or seven values, kept in the same document as the campaign brief. Everyone tagging links reads from it.
Never tag internal links
A UTM tag on a link inside your own site overwrites the original campaign attribution for that session. The visitor arrived from Instagram; one tagged internal link and the report says they arrived from your own footer.
Attaching them to a short link instead
Tagged URLs are long and ugly, which is a real problem in an SMS, a bio or anything printed. On gc.mw the parameters can live on the link rather than in the URL you share.
In the link editor, the UTM parameters section takes the five values. On every redirect they are appended to the
destination, so gc.mw/menu arrives at the destination as a fully tagged URL while the thing you printed stays ten
characters long. Change utm_campaign next month and every existing copy of the link starts reporting under the new
name — including the one on the poster.
One rule governs collisions: a parameter already present on the destination URL wins. If the destination is
https://example.com/sale?utm_source=partner, the link's own utm_source is not applied. That protects attribution
somebody else set up deliberately, and it means you should keep the destination URL clean if you want the link's
tags to do the work.
UTM Builder
Open the full toolReading them back
In the gc.mw dashboard, tagged clicks appear under UTM campaigns on the analytics page from the Pro tier upwards. That view answers a different question from the one your website analytics answers: it counts people who asked for the link, including everyone who never finished loading the destination. Compare the two and the gap is your landing page's real drop-off.
For anything printed, use utm_medium=print and a utm_source that names the physical place — shop_window,
table_tent, flyer_batch2. Combine that with a separate short link per placement and you get something most
print campaigns never produce: a per-placement number you can defend.
Questions people ask
Are UTM parameters case sensitive?
The values are. Google Analytics 4 treats Email and email as two separate sources and will report them on separate rows forever. The parameter names themselves must be lower case — utm_Source is simply ignored. Lower-casing every value is the single highest-value habit in campaign tagging, which is why our builder does it by default.
Do UTM parameters slow a page down or hurt SEO?
They add query string characters, nothing more. The risk is duplicate content: a tagged URL is technically a different URL, so if search engines find it linked from a public page, make sure the page has a canonical tag pointing at the clean URL. Tag links you place in campaigns, never links inside your own site navigation.
Which parameters are actually required?
utm_source in practice. GA4 needs a source to attribute the session to a campaign; without it the other tags are usually dropped and the visit falls into direct or referral. Medium and campaign are what make the report readable. Term and content are optional and most people should ignore term unless they are running paid keywords.
Can I put UTM parameters on a short link instead of the destination?
Yes, on Pro. Set them in the UTM parameters section of the link editor and they are added to the destination during the redirect, so the visitor copies and shares a clean gc.mw link while your analytics still sees the campaign. Parameters already present on the destination URL are never overwritten.
What is the difference between utm_content and utm_term?
utm_content separates two links that share a source, medium and campaign — the header button and the footer link in the same email. utm_term was built for paid search keywords and is empty in most modern setups because ad platforms pass keyword data through their own auto-tagging.
Sources
- Google Analytics Help: collect campaign data with custom URLs — checked 5 September 2026
- RFC 3986 §3.4 — Query component — checked 5 September 2026
Keep going
Try it with your own link
Paste a long link and get a 10-character gc.mw link with a QR code. No account needed for 30 days; free forever with one.