UTM Builder for Short Links: Tag Campaigns Without a Spreadsheet (2026)
· Giovanni Fu Lin · url-shortener, analytics, utm, marketing
UTM tags are the difference between “we got 400 clicks” and “we got 400 clicks, 340 from the newsletter, and the newsletter ones converted at three times the rate of the social ones.” The first number is a vanity metric. The second one tells you where to spend next month.
I’m Giovanni, and I build ShortLink at Fulin Labs — a free URL shortener with real-time analytics, a UTM builder, QR codes, folders, and an API. This post is mostly about UTM conventions that apply wherever you tag links; I’ll cover where ShortLink fits at the end.
What each parameter is actually for
Five parameters. Three you’ll use constantly, two occasionally.
| Parameter | Answers | Example values |
|---|---|---|
utm_source | Where did this come from? | newsletter, twitter, partner-blog |
utm_medium | What kind of channel? | email, social, cpc, qr |
utm_campaign | Which initiative? | spring-launch, black-friday-2026 |
utm_term | Which paid keyword? | url-shortener |
utm_content | Which variant? | header-cta, footer-link |
A tagged URL looks like this:
https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=spring-launch&utm_content=header-cta
The distinction people get wrong most often is source vs medium. Source is the specific origin; medium is the category it belongs to. twitter is a source; social is the medium. mailchimp is a source; email is the medium. Get this backwards and your reports become impossible to roll up, because you can no longer ask “how did all social do?” without manually stitching sources together.
utm_content is the one most people ignore and shouldn’t. It’s how you A/B test placement inside a single campaign — the same email, two links, tagged header-cta and footer-link, and now you know which position works. That’s a free experiment on every send.
The conventions that keep data usable
Tagging isn’t hard. Tagging consistently is, and inconsistency is what actually ruins campaign reporting.
Lowercase everything. UTM values are case-sensitive. Newsletter and newsletter are two different sources as far as your analytics is concerned, and they’ll appear as two rows with your traffic split between them. This single mistake accounts for an enormous share of unusable campaign data.
Hyphens, not spaces or underscores. Spaces become %20 and look broken. Pick hyphens and never deviate.
Write down your vocabulary. Decide once whether your email medium is email or newsletter, whether your campaign naming is spring-launch or launch-spring-2026, and stick to it. A five-line document beats good intentions, especially if more than one person creates links.
Never tag internal links. Putting UTM parameters on links between pages of your own site restarts the session attribution and overwrites the original source. You’ll end up with traffic that appears to come from yourself. Only tag links arriving from outside.
Don’t tag what you don’t measure. utm_term is for paid search keywords. If you’re not running paid search, leave it off. Empty or meaningless parameters are noise in the URL and noise in the report.
Short links plus UTM tags
Here’s the tension. A properly tagged URL is long:
https://example.com/pricing?utm_source=instagram&utm_medium=social&utm_campaign=spring-launch&utm_content=bio-link
You cannot put that in a bio, a printed flyer, a podcast read, or a slide. It’s ugly, it wraps across lines, and it visibly announces that you’re tracking people — which measurably reduces clicks.
Shortening solves it: the short link is what you share, the tagged URL is what it resolves to, and the parameters fire normally when the redirect completes. Clean link, full attribution.
You also get a second, independent layer of data. Short-link analytics and UTM analytics measure different things and neither replaces the other:
| Layer | Tells you | Where you read it |
|---|---|---|
| Short-link analytics | Clicks, timing, rough geography, device | Your shortener’s dashboard |
| UTM parameters | What the visitor did after arriving | Your own site analytics |
The shortener sees the click even if the visitor bounces instantly or blocks your site analytics. Your site analytics sees the conversion. Together they let you compute the thing you actually care about — did this channel produce customers, not just clicks. On its own, either half is misleading. I went deeper on the click-side measurement in how to track link clicks for free.
Why a builder beats a spreadsheet
Most people start by hand-assembling URLs in a spreadsheet. It works until it doesn’t, and the failure modes are predictable:
- Typos.
utm_mediunsilently drops the parameter. You won’t notice for a month. - Casing drift. Someone types
Emailonce. Your report splits. - Vocabulary drift.
spring-launchthis week,springlaunchnext week,spring_launchafter that. Three campaigns where you meant one. - Encoding. A space or an ampersand in a value breaks the URL in ways that are annoying to debug.
- No record. Six months later, nobody remembers what
campaign-2referred to.
A builder fixes these by construction: it formats the parameters correctly, it encodes values properly, and — if it’s attached to your link tool — it keeps a record of every link you generated alongside its performance. That last part is what a spreadsheet fundamentally can’t do, because the spreadsheet doesn’t know how the links performed.
Organizing tagged links once you have a lot of them
Tagging is step one. The problem that arrives next is volume: after a couple of quarters you have hundreds of tagged short links and no idea which belongs to what.
Two things help. Folders — group links by campaign, client, or channel, so “how did the spring launch do” is one folder rather than a search. Consistent aliases — if your short links use custom aliases that mirror the campaign (/spring-email, /spring-social), the link is self-documenting even outside the dashboard.
The current ShortLink product page states the approved-account boundary, and the short-link analytics setup guide covers the workflow.
Doing this with ShortLink
ShortLink is free and its current web interface requires an approved account. For campaign tagging it gives you:
- A built-in UTM builder — fill in source, medium, campaign, term, and content as fields rather than hand-editing a query string, and get a correctly formatted tagged URL.
- Shortening on top of the tagged URL — so what you share is clean while the parameters still resolve.
- Real-time click analytics with rough geographic origin, so you see the click side immediately rather than waiting for a dashboard refresh cycle.
- Custom aliases so the short link itself is readable.
- Colour-coded folders to keep campaigns separate once you have a lot of links.
- QR codes on every link — useful for print and events, where a tagged URL is completely impractical. More on that in how to create a QR code from a short link.
- A RESTful API if you’d rather generate tagged links programmatically — see creating short links via API.
Being straight about the limits: ShortLink uses aliases on s.fulinlabs.com rather than your own branded domain, so if a fully white-labelled link is a hard requirement, this isn’t the tool. And it tells you about clicks, not conversions — your own site analytics still has to close that loop. The UTM builder is precisely the bridge between the two, which is why it exists.
The short version
Use utm_source for the specific origin, utm_medium for the channel type, utm_campaign for the initiative, and utm_content to test variants. Lowercase everything, use hyphens, write your vocabulary down, and never tag internal links. Shorten the tagged URL so what you share stays clean, and read both layers — the shortener tells you about the click, your analytics tells you what happened next. A builder is worth it purely because it makes the naming consistent, and consistency is the whole game.
FAQ
What is a UTM builder?
A UTM builder is a tool that appends campaign tracking parameters — utm_source, utm_medium, utm_campaign, and optionally utm_term and utm_content — to a destination URL. Its real value is consistency: it produces correctly formatted, consistently named tags every time, which is what makes analytics reports group properly instead of fragmenting.
Do I need UTM tags if I already use a link shortener with analytics?
They answer different questions, so most people want both. Short-link analytics tell you about the click — how many, from where, when. UTM tags travel into your own analytics and tell you what happened after the click: did that visitor read the page, sign up, buy. Clicks without conversions is only half a picture.
What are the five UTM parameters?
utm_source is where the traffic came from (newsletter, twitter). utm_medium is the channel type (email, social, cpc). utm_campaign is the specific initiative (spring-launch). utm_term is for paid keywords. utm_content distinguishes variants within one campaign, like two different buttons in the same email.
Should UTM parameters be lowercase?
Yes, always, without exception. UTM values are case-sensitive, so Newsletter and newsletter register as two separate sources and split your reporting in half. Lowercase everything, use hyphens rather than spaces, and never vary the casing — this single convention prevents the most common cause of unusable campaign data.
Can you shorten a URL with UTM parameters?
Yes, and it's usually the better approach. A fully tagged URL is long and visibly cluttered with tracking parameters, which looks untrustworthy in a bio or a printed piece. Shortening it hides the machinery behind a clean link while the parameters still fire when the redirect resolves.
Related project: ShortLink by Fulin Labs