Skip to main content
Free, no signup

Free UTM Builder

Add campaign parameters to any URL so your analytics can tell you where a visit came from. It runs in your browser, so nothing you type is sent anywhere.

Build a campaign URL

The page you want people to land on. Any query parameters already on it are kept.

Where the click comes from. A specific place: google, newsletter, linkedin, partner-name.

The kind of traffic it is. Keep this to a short agreed list: email, cpc, social, referral, affiliate.

The campaign this link belongs to. Everything in one campaign should share this exact value.

Optional. Which link it was, when one campaign has several: header-button, footer-link, variant-b.

Optional. The paid search keyword. Leave it blank unless you are tagging keyword-level links by hand.

What UTM parameters actually do

When somebody lands on your site, your analytics tool can usually see the site they came from, and not much else. It cannot tell the difference between your Tuesday newsletter and your Thursday one, or between the link in the post and the link in your bio, because both arrive looking identical.

UTM parameters fix that by putting the answer in the URL itself. You decide what the link is called before you send it, and the analytics tool reads those labels off the address bar when the page loads. It is a convention rather than a technology, which is why the same five parameters work in Google Analytics, Adobe, Matomo, Piwik, Fathom and every other tool you are likely to use.

Nothing enforces them. That is the whole problem, and the reason the second half of this page is about naming rather than building.

The five parameters, and what to put in each one

Three are required by convention. Two are optional and are usually left empty.

ParameterRequiredWhat it answersGood values
utm_sourceYesWhich specific place the click came fromnewsletter, google, linkedin, partner-name
utm_mediumYesWhat kind of traffic it isemail, cpc, social, referral, affiliate
utm_campaignYesWhich campaign the link belongs tospring-sale-2026, q3-webinar, black-friday
utm_contentNoWhich link it was, when a campaign has severalheader-button, footer-link, variant-b
utm_termNoThe paid search keywordrunning-shoes. Usually filled in automatically by the ad platform

Source and medium are the pair people most often get backwards. Medium is the category, source is the specific thing inside it: medium email, source newsletter. If you find yourself putting the same value in both, one of them is wrong.

Three habits that decide whether your reports are readable

The builder above handles encoding. These are the parts a tool cannot decide for you.

1. Pick one case and never change it

Analytics tools treat Email, email and EMAIL as three separate sources, so a single capital letter splits one campaign across three rows in a report. Lowercase everything. The checkbox in the builder does it for you.

2. Keep medium to a short agreed list

Source can be anything, because there are genuinely lots of places traffic comes from. Medium should be a list of five or six values your whole team knows by heart. If somebody invents paid-social while somebody else writes paidsocial, your channel grouping quietly stops working.

3. Never tag an internal link

Putting UTM parameters on a link between two pages of your own site starts a new session and credits the visit to your own campaign, overwriting how the visitor actually found you. UTM parameters are for links that arrive from somewhere else.

Generating one URL is easy. Managing hundreds is not.

The builder above is free and always will be. Relay is the part of TagPipes for when one link becomes a taxonomy somebody has to keep straight.

Free UTM Builder

  • Build one tagged campaign URL from the five standard parameters
  • Keeps the query parameters already on your destination
  • Encodes the values correctly, so nothing breaks in an email client
  • Optionally lowercases and hyphenates, so casing never splits a report
  • Copy the URL and go. No account, no login, nothing stored

TagPipes Relay

  • Links are saved against a campaign, so you can find one again next quarter
  • A naming template decides which parameters a link must carry before it can be saved
  • A link that duplicates an existing destination and parameter set is refused, not quietly created
  • A searchable library of every link the team has built
  • Editing a saved link rebuilds its URL, so the record and the link never drift apart

Relay is part of TagPipes and needs an account. What Relay is.

Frequently asked questions

One link is free. A hundred links need a system.

Relay is the TagPipes module for that. Build a URL above, then save it into Relay from the result: the destination and the values you typed carry straight across.

Build a campaign URL

The builder stays free and needs no account. You register only when you save a link into Relay.

Already have an account? Log in.