Build Trackable Campaign URLs
UTM parameters are tags added to the end of a URL that tell your analytics platform where a visitor came from. They are invisible to the visitor and change nothing about the page — they simply travel along with the click so that Google Analytics, Matomo, or whatever you use can attribute the session to a specific campaign. This builder assembles them correctly, entirely in your browser.
What does each parameter mean?
| Parameter | Answers | Examples |
|---|---|---|
utm_source | Which site or list sent the traffic? | google, newsletter, linkedin |
utm_medium | What kind of channel was it? | cpc, email, social |
utm_campaign | Which campaign is this? | spring_sale, launch_2026 |
utm_term | Which keyword? (paid search) | running shoes |
utm_content | Which version or link? (A/B tests) | logolink, variant_b |
Source is the only one Google Analytics genuinely requires, but source, medium, and campaign together are the practical minimum — without medium, everything lands in reports as unassigned.
Does capitalization matter?
Yes, and it is the single most common way UTM reporting gets messed up. Analytics
platforms treat utm_source=Newsletter and utm_source=newsletter
as two different sources, so one campaign ends up split across two rows. This tool
preserves exactly what you type rather than quietly lowercasing it, because rewriting
your input would hide the problem rather than solve it. Pick a convention —
lowercase throughout is the usual choice — and stick to it.
What happens to spaces and special characters?
They are percent-encoded, so a space becomes %20 and characters such as
&, =, and ? are escaped. This matters: an
unescaped & inside a campaign name would be read as the start of a new
parameter and silently truncate your value. Some teams prefer underscores or plus signs
to spaces for readability; either works, as long as it is consistent.
Will this break a URL that already has parameters?
No. If your URL already contains a query string, the tags are joined with
& rather than a second ?. And if the URL ends in a fragment
such as #pricing, the parameters are inserted before it, which is
where they have to be — anything after the # is never sent to the
server and would not be recorded.
Tips for tagging that stays useful
Only tag external links. Adding UTM tags to links between pages of your own site
restarts the session attribution and overwrites the original source, so your real
acquisition data disappears. Keep a shared spreadsheet of the values your team uses so
that email does not become e-mail next quarter. And avoid
putting anything private in a campaign name — tagged URLs get shared, pasted into
chats, and indexed.
Related tools
To escape a value by hand or inspect one you have been given, use URL Encode & Decode. To turn a campaign name into a clean, URL-safe form first, try the Slugify URL Generator.
Last reviewed: August 2026