UTM Builder (Campaign URL Generator)
Tag a link with utm parameters and copy the campaign URL. Everything runs locally.
- Runs in your browser
- No sign-up
- No watermark
- No installs
The destination the campaign link should point to.
Where the traffic comes from (google, newsletter, twitter).
The marketing channel (email, social, cpc, referral).
The named campaign or promotion this link belongs to.
Paid-search keyword, when relevant.
Tells two links in the same message apart.
What this tool does
This is a UTM builder, also called a campaign URL builder. It takes a destination web
address and glues on the five standard UTM tracking parameters so an analytics tool can
tell which campaign, channel, and source sent each visitor. You fill in the fields, and it
assembles a single tagged link. Every value is URL-encoded with
encodeURIComponent, so a space becomes %20 and reserved
characters stay safe. If your base URL already has a query string, the new parameters are
joined with &; if it ends in a # fragment, they are inserted
before the fragment. Nothing leaves your browser.
How to use it
Enter the Website URL you want people to land on, then set
utm_source, utm_medium, and utm_campaign
(these three are required). Add utm_term or utm_content
only if you need them. The Campaign URL box updates live as you type. When
it looks right, press Copy URL and paste the tagged link into your email,
ad, or social post. Example: a base of https://example.com/page with source
newsletter, medium email, and campaign spring sale
produces https://example.com/page?utm_source=newsletter&utm_medium=email&utm_campaign=spring%20sale.
Common use cases
- Tagging a newsletter link so you can see how much traffic and conversion the email drove.
- Building consistent links for a paid ad, a social post, and an affiliate, each with its own source and medium.
- Distinguishing two calls-to-action in the same message with utm_content (for example, a header button versus a footer link).
- Handing marketers a repeatable way to tag links without hand-editing query strings.
- Adding tracking to a URL that already carries its own query parameters or an anchor.
Common pitfalls
- Inconsistent casing splits your reports. Analytics treats
Emailandemailas different mediums. Pick lowercase and stick to it across every link. - UTM values are visible and public. They sit in the URL in plain text and can be edited or shared by anyone. Never put anything private, such as a name or an email address, into a UTM value.
- Do not double-tag. If the base URL already contains utm parameters, this tool appends another set rather than replacing them. Start from a clean, untagged URL to avoid duplicate keys that analytics tools may read inconsistently.
- The fragment is not sent to the server. Parameters placed after a
#never reach analytics. This tool keeps the tracking parameters in the query string, before the fragment, which is where they belong.
Frequently asked questions
- What is a UTM builder?
- A UTM builder appends up to five tracking parameters (utm_source, utm_medium, utm_campaign, utm_term, and utm_content) to a link so analytics tools can attribute a visit to a specific campaign. You paste a destination URL, fill in the tags, and the tool assembles one tagged link you can share. UTM stands for Urchin Tracking Module, named after the analytics product that became Google Analytics.
- Which UTM parameters are required?
- Google Analytics treats utm_source as the only strictly required value, but the common convention is to always set utm_source, utm_medium, and utm_campaign together so reports stay consistent. utm_term (originally for paid-search keywords) and utm_content (for telling two links in the same message apart, such as an image versus a text link) are optional. This tool requires source, medium, and campaign, and leaves term and content optional.
- How are spaces and special characters encoded?
- Each value is percent-encoded with encodeURIComponent, so a space becomes %20, an ampersand becomes %26, and other reserved characters are escaped. This keeps the query string valid and stops a stray character in a campaign name from breaking the link. For example, a campaign named spring sale is written as utm_campaign=spring%20sale in the final URL.
- What if my URL already has a query string or a hash?
- The builder handles both. If the destination already contains a query string (a ? somewhere), the new parameters are joined with an ampersand instead of a second question mark. If the URL ends with a fragment (a # anchor, used for on-page jumps or client-side routing), the tracking parameters are inserted before the # so the fragment stays at the end where browsers expect it.
- Should UTM parameter values be lowercase?
- It is a strong convention to keep values lowercase and consistent, because analytics platforms treat Email and email as two different mediums, which splits your reports. Pick one style (lowercase is the safest default), avoid spaces by using underscores or hyphens where you can, and write the naming scheme down so a whole team tags links the same way.
- What is the difference between utm_source and utm_medium?
- utm_source names the specific origin of the traffic, such as newsletter, twitter, or google. utm_medium names the broad channel or marketing category, such as email, social, cpc, or referral. A rule of thumb: medium answers what kind of channel, and source answers which exact property inside that channel. utm_campaign then ties both to a named initiative, such as summer_sale_2026.
- Is the link or my data sent anywhere?
- No. The tagged URL is assembled entirely in your browser with built-in JavaScript; nothing is uploaded and no request is made while you build the link. You can confirm this by opening DevTools and watching the Network tab: it stays empty. That also means the tool keeps working offline once the page has loaded.
Cite this tool
For academic, journalistic, or technical references. Pick a format:
Citations use 2026 as the publication year. Access date is left as a fillable placeholder where the citation style expects one.