Free tool
Build campaign URLs that keep reports clean
Fill the fields or start from a channel preset — the URL assembles as you type, entirely in your browser.
Where the traffic comes from
The channel type
The campaign name
Paid keyword (optional)
Variant or placement (optional)
The five parameters, explained
| Parameter | Required | Answers the question | Good values | Common mistake |
|---|---|---|---|---|
| utm_source | Yes | Where does the visitor come from? | newsletter, google, facebook, partner-site | Mixing platform and channel: “facebook” is a source, “social” is the medium. |
| utm_medium | Yes | What kind of channel carried the link? | email, social, cpc, sms, qr, referral | Inventing one-off values. Analytics groups channels by medium — keep a fixed dictionary. |
| utm_campaign | Yes | Which campaign or initiative is this? | spring-sale, launch-2026, black-friday | Encoding dates twice (“spring_sale_march_2026_v2”) — keep it short and stable. |
| utm_term | Optional | Which paid keyword or audience segment? | branded-links, competitor-brand | Using it for content variants — that is what utm_content is for. |
| utm_content | Optional | Which creative, placement or variant? | cta-button, footer-link, variant-b | Leaving it off A/B tests — without it two ads in one campaign are indistinguishable. |
Why naming discipline beats any tool
UTM tracking fails in spreadsheets, not in analytics software. The parameters themselves are trivial — five key-value pairs appended to a URL. What breaks reports is inconsistency: one teammate tags email as email, another as Email, a third as newsletter, and a quarter of your traffic lands in three differently named buckets. The fix is a shared dictionary: agree on lowercase, hyphens, a closed list of mediums, and campaign names without dates unless the date matters. The presets in the builder above encode exactly such a dictionary — edit them mentally to match your own.
The second failure mode is losing parameters in transit. Social platforms, partner sites and chat apps sometimes strip or truncate long query strings, and a URL with five UTM values is long. The standard cure is a short link wrapping the tagged URL: the visible link stays compact, the parameters ride safely on the destination, and the shortener adds its own click record even where client-side analytics is blocked. The platform can also append UTM values at redirect time — one link, correct tags, no copy-paste errors.
Once tagged traffic flows, the reporting question becomes where to read it. Web analytics shows sessions; a link platform shows clicks per link with geography, devices and referrers — including clicks from apps and environments where JavaScript trackers never fire. Teams that run campaigns at volume usually want both, which is why click analytics and UTM templates ship together in the product.
Frequently asked questions
Are UTM parameters case-sensitive?
Yes — most analytics tools treat “Email” and “email” as two different values and split your reports. The safest convention is lowercase everywhere, with hyphens instead of spaces.
Should I put UTM parameters on internal links?
No. Clicking an internal link with UTM parameters restarts the visitor’s session attribution in most analytics tools, overwriting the real traffic source. UTM belongs only on links that lead into your site from outside.
Do UTM parameters survive short links?
With a proper shortener, yes: parameters on the destination URL are preserved, and a good platform can also append UTM values at redirect time without overwriting ones already present — so one short link serves a whole campaign correctly.
Where is my history stored?
In your browser’s localStorage only. Nothing you type into this builder is sent to our servers — the URL is assembled locally.
Stop pasting parameters by hand
Workspaces get UTM templates on every link — consistent tags, enforced automatically.
No card required for the trial.