toooly-box

UTM Builder

Fill in the campaign fields and copy the tagged URL. Values are normalised so one campaign stays one row in your reports.

runs locally
Campaign URL
Your tagged URL

What is a UTM parameter?

A UTM parameter is a tag added to the end of a link that tells your analytics where the visit came from. The five are utm_source, utm_medium, utm_campaign, utm_term and utm_content; the first three are the ones every report groups by. They change nothing about the page, only how the visit is labelled.

How it works

Three parameters do the real work: utm_source says where the click came from, utm_medium says what kind of channel it was, and utm_campaign names the campaign. Term and content are optional.

Analytics tools treat Facebook and facebook as two different sources, so values are lowercased and spaces become underscores. That single rule prevents most of the mess in campaign reports.

Existing query parameters on your URL are kept, and an existing utm_ value is replaced rather than duplicated.

What are UTM parameters, and which ones matter

UTM parameters are five optional fields you add to the end of a link so that analytics can tell where a visit came from. They are read by Google Analytics 4, and by most other analytics platforms, straight out of the query string: nothing has to be configured first, which is why they have outlived the Urchin tracker they are named after.

  • utm_source where the click came from, as a platform: newsletter, facebook, partner-site. Required: without it GA4 falls back to guessing from the referrer.
  • utm_medium the kind of traffic: email, cpc, social, affiliate, qr. Required, and the field most worth standardising, because GA4 groups channels by it.
  • utm_campaign the campaign this link belongs to: black-friday-2026. This is what lets you add up a campaign across sources.
  • utm_term the keyword, for manually tagged paid search. Usually left empty, since Google Ads fills it automatically.
  • utm_content which version of the creative or which link in the email. The field to use for an A/B test: hero-button against footer-link.

The conventions that keep your reports readable

UTM values are case-sensitive and free-text, which means Facebook, facebook and FaceBook are three different sources in your reports, and "Black Friday" and "black-friday" are two campaigns. Most broken attribution is not a tracking failure; it is a naming failure spread across a team.

This builder lowercases values and replaces spaces with hyphens as you type, which removes the two most common causes of split rows. Beyond that, three rules are worth writing down once and sharing: pick a fixed vocabulary for utm_medium and never improvise outside it; use a date or a quarter in the campaign name so last year's figures do not merge with this year's; and never tag internal links, because a UTM on a link between two pages of your own site starts a new session and credits your own homepage with the conversion.

Tagging a whole campaign at once

One link at a time is fine for a one-off post. A launch is not one link: it is a newsletter, three social posts, two partners and a QR code on a flyer, and typing them one at a time is how a typo gets into a report that someone later builds a decision on.

Switch to bulk mode and drop in a CSV with one row per link: URL, source, medium, campaign, and optionally term and content. The result is a table of finished, normalised URLs you can copy or download as a CSV and paste straight into your email tool, your scheduler or a shortener. The delimiter is detected, so a spreadsheet exported from an Italian or German Excel works unchanged, and rows missing a required field are flagged with the reason instead of producing a half-tagged link.

Existing query strings, fragments and shorteners

  • A URL that already has parameters is handled correctly: existing query parameters such as ?ref=home are kept and the UTM fields are appended, rather than the query being overwritten.
  • A fragment #pricing stays at the end where it belongs, after the query string, so the link still jumps to the right section.
  • A tagged link behind a shortener works, as long as the shortener passes the query through on redirect rather than dropping it. Test one before you print it on anything.
  • Length a fully tagged URL is long and ugly in a visible place. For print, a QR code or a spoken-aloud link, point a short branded link at the tagged URL instead.

Questions people ask

Which UTM parameters are required?

Source, medium and campaign. Term and content are optional and only worth filling in when you actually split reporting by keyword or by creative.

Should UTM values be lowercase?

Yes. Analytics platforms are case sensitive, so Newsletter and newsletter become two rows. This builder lowercases everything for you.

Can I tag an internal link?

You should not. UTM parameters on internal links start a new session in most analytics tools and overwrite the original source of the visit.