Logo

MonoCalc

/

UTM Campaign Link Builder

Social Media
Paste the page the link should open. https:// is added when you leave the scheme off.

Campaign fields

Where the click comes from. Nothing is built without it.
The kind of channel. Reports usually group source and medium together.
The label that ties many links into one campaign report.
Introduced for the paid-search keyword behind an ad.
Tells two variants of the same link apart, e.g. blue_button.
Your own campaign identifier, if you use one.

Value hygiene

Replace spaces with

Leading and trailing spaces are always trimmed and internal runs of whitespace become one separator. These rules change parameter values only — the destination path is left exactly as you typed it.

Paste a destination URL to start
The link is assembled in your browser. Nothing is sent to the destination and nothing leaves this page.

About This Tool

UTM Campaign Link Builder – Tagging URLs for Analytics

A UTM link is an ordinary web address with extra query-string values attached to it, such as https://shop.example.com/sale?utm_source=instagram&utm_medium=social&utm_campaign=spring-launch. The page itself loads exactly as it would without them. What changes is that the analytics tool running on that page can read the values and record where the visit came from, instead of filing it under an anonymous pile of direct or referral traffic.

The three ways hand-built tracking links fail

Campaign links are usually assembled by pasting text together, and that is where they break. The first failure is a second question mark: the destination already carried ?ref=hero, another ?utm_source=… is appended, and everything after the second ? is read as one long value. The second is the fragment. A URL is read in a fixed order — origin, path, query string, then #fragment — so parameters stuck onto the end of /page#details sit outside the query string and never reach the analytics tool. The third is double encoding, where a value that was already percent-encoded is encoded a second time and %20 turns into %2520.

This builder avoids all three by parsing your destination with the browser's own URL and URLSearchParams objects and re-serialising it, rather than joining strings by hand. Any parameters already on the URL survive, the separator between them is always correct, and the fragment stays at the end where it belongs.

Your link is parsed, never visited
Everything runs in your browser and no request is sent to the destination. That also means the tool can confirm only that the address is well formed — not that the page exists, and not that an analytics tool is installed on it.

What each parameter carries

utm_source names where the click came from, utm_medium describes the kind of channel, and utm_campaign is the label that groups many links into one campaign report. utm_term was introduced for the paid-search keyword behind an ad, utm_content exists to tell two variants of the same link apart, and utm_id carries your own campaign identifier. Three further parameters — utm_source_platform, utm_creative_format and utm_marketing_tactic — are read by GA4 and ignored by most other analytics tools, which is why they sit behind the Advanced section. Which parameters a given report needs differs by analytics vendor, so treat these fields as labels you are choosing rather than a fixed specification.

Why case and spaces change your reports

Analytics platforms compare these values character by character. Facebook, facebook and FaceBook therefore arrive as three separate rows that have to be added back together by hand. A raw space is transmitted as %20 or + and is often displayed that way too. The hygiene switches lowercase your values and collapse internal whitespace into a single - or _, and every change is shown beneath the field so the output never surprises you. The rules touch values only: the destination path is left exactly as typed, because path segments are case sensitive on most web servers.

Reading the URL anatomy strip

The finished link is broken into labelled chips — origin, path, the parameters that were already on your URL, each parameter this tool added, and the fragment last. The added chips are emphasised and the inherited ones are muted, so a glance tells you what changed. Seeing the fragment sitting after the parameters is the quickest way to internalise the ordering rule that hand-written links get wrong.

Tagging one campaign across many placements

The bulk tab takes lists of sources and mediums and builds every combination of them against one destination, so eight placements across three channels become one table rather than twenty-four rounds of copying and pasting. The result can be copied as newline-separated links or exported as CSV with the source, medium, campaign and URL in separate columns, ready to paste into an ad platform or a campaign sheet.

The suggestion lists are starting points
The values in the dropdowns, the default switches and the default separator are conventions in common use, offered to save typing. They are not recommendations, and no combination of parameters works better than another — what matters is that you use the same spelling consistently, because that spelling is what your reports group on.

Frequently Asked Questions

Is the UTM Campaign Link Builder free?

Yes, UTM Campaign Link Builder is totally free :)

Can I use the UTM Campaign Link Builder offline?

Yes, you can install the webapp as PWA.

Is it safe to use UTM Campaign Link Builder?

Yes, any data related to UTM Campaign Link Builder only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

How does the UTM campaign link builder work?

You paste a destination URL and fill in campaign fields such as source, medium and campaign name. The tool parses the URL with the browser's built-in URL and URLSearchParams APIs, adds each non-empty utm_ parameter to the query string, and shows you the finished link along with a labelled breakdown of every part of it. Nothing is sent anywhere — the destination URL is parsed, never visited.

Are UTM parameter values case sensitive?

Analytics tools generally compare these values character by character, so Facebook and facebook arrive as two separate rows in a report rather than one. The Lowercase values switch normalises the values for you and is on by default; it only touches the parameter values, never the destination URL's path, which genuinely is case sensitive on most web servers.

What happens if my URL already has a query string?

The existing parameters are kept exactly as they are and the UTM parameters are joined onto them with &, so you never end up with two ? characters in one URL. Because the link is rebuilt through the URL API rather than by pasting strings together, the separator is always correct no matter how the original URL was written.

Where do the parameters go if the URL has a # fragment?

Before the fragment. A URL is read as origin, then path, then query string, then #fragment, and anything placed after the # is not part of the query string, so analytics tools typically never receive it. This builder always writes the parameters into the query string and leaves the fragment at the end, which is one of the most common mistakes in hand-written tracking links.

What is the difference between utm_term and utm_content?

utm_term was introduced to carry the paid-search keyword that triggered an ad, while utm_content is used to tell apart two variants of the same link — for example a text link and a banner in one email, or a blue button and a green button in one ad test. Both are optional, and both are just labels: whatever you type is what appears in the report.

Do UTM tags affect SEO or change the page that loads?

The parameters are ordinary query-string values. The server decides what to do with them, and most pages simply ignore unrecognised parameters and render normally. Search engines may treat two URLs that differ only by query string as separate addresses, which is why tagged links are usually shared in campaigns and ads rather than used as the canonical link to a page.