utilime

Small tools that finish the job.

Build a campaign link

Fill in the boxes and the tagged link is assembled as you type, with the required parameters marked and anything that would split a report flagged underneath it.

Drop a file hereor click to choose · it stays on your device

How it works

A UTM parameter is a label bolted onto a link so the analytics on the destination page can say where a visit came from. The five original names came from Urchin, the company Google bought in 2005 and rebuilt into Analytics, and the prefix is still that company's initials. No browser and no server enforces any of it. The labels ride along in the query, the page itself ignores them, and a measurement script on that page reads them and files the visit under whatever it finds. That mechanism, and its complete absence of validation, accounts for nearly everything that goes wrong here.

Three of the six are required and three are not

Source, medium and campaign are the trio a report groups by. Source names the place the link sat: a publication, a partner site, a search engine. Medium names the kind of channel, so email, cpc, social, affiliate. Campaign names the initiative, which lets one launch be read as a single thing across four channels at once. The other three are narrower. Term carries a paid keyword. Content separates two links inside one message, the header button from the footer link. Identifier joins clicks against imported cost data, so spend can sit beside sessions in the same table.

Capitals split a report and nothing warns you

Values are matched as literal strings. Newsletter and newsletter are two different values, so a report grows two rows where one was meant, each holding part of the traffic, and every total derived from either runs short. Nothing errors, because both spellings are perfectly legal. The host part of a web address genuinely is case-insensitive and a browser folds it for you. The query is not, and nothing folds that. The toggle here lowercases every value before the link is built, which is the convention almost every team arrives at after being bitten once.

Choose one separator and never deviate

A space inside a value survives into the link as an escape sequence. Whichever form it takes it reads badly in a report and worse in a spreadsheet filter, so hyphens or underscores instead, picked once and written down where a colleague can find them. The vocabulary needs the same treatment: decide whether the channel is email or e-mail, whether paid search is cpc or ppc, and hold that list somewhere shared. Fragmented reports are rarely one person being careless. They are usually two people each being perfectly consistent with a different private convention.

Where the labels have to sit

Order among the parameters is irrelevant, since each one is read by name. Position relative to the rest of the address is anything but. Labels belong in the query, and a hash with everything trailing it must come last. Write the labels after the hash by hand and the link still opens, the page still jumps to the right heading, and the campaign is invisible, because a fragment never leaves the browser. That is the defect in most hand-typed tagged links, and it survives review because the link demonstrably works.

Adding to a link that already carries something is the other half of it. A second question mark where an ampersand was needed produces a parameter whose name starts with a question mark, and no report will ever match that. Adding a label twice leaves one name holding two values, and which of them gets read is not worth depending on. Both are handled here: a name already present is replaced rather than doubled, and the separator is whatever the address happens to need.

What happens to a label after you send it

A tagged link is not guaranteed to arrive intact. Most shorteners carry the query through their redirect and a few discard it. Some mail and messaging clients rewrite links for their own click tracking and can drop what they do not recognise. Sites that normalise to a canonical address by stripping unknown parameters will take yours out along with the rest. The check costs nothing: open the finished link, let the page settle, and read the address bar. Whatever is still there is what the measurement script saw.

The reason to bother at all is worth keeping in view. An untagged visit is attributed by referrer, and there is no referrer on anything opened from a slide deck, a desktop mail client or a chat app. Those arrivals pile into a direct bucket that explains nothing. Labelling them makes them readable. Labelling links between pages of your own site is the opposite error: it restarts attribution partway through a visit and overwrites the source that actually brought the person in.

Questions

Do I have to fill in all six?

No. Source, medium and campaign are the three worth treating as mandatory, because those are the columns a report groups by and a blank one leaves a hole in it. Term, content and identifier serve narrower jobs, and an empty box for any of them is left out of the link entirely rather than written in as an empty value.

Does capitalisation really change anything?

Yes, and it is the most common way campaign data gets fragmented. A value is compared character by character, so Email and email become separate rows carrying separate halves of the same traffic. Only the host part of an address is case-insensitive. The path and the query are matched exactly as written, by the analytics layer and by anything else reading them.

Does the order of the parameters matter?

Not among themselves. Each one is looked up by name, so source before medium or medium before source makes no difference to any report. What does matter is that all of them sit in the query and that a fragment stays behind them, because nothing after a hash is ever sent to the server or read as a parameter.

What is utm_id actually for?

Joining a click to a cost. Analytics tools let you upload spend data keyed by a campaign identifier, and utm_id is the key lining a row of that upload up with the sessions a link produced. If you are not importing costs, leave it empty. It is not a general slot for a reference number, and filling it with one produces a report column of noise.

Can I tag a link to a site I do not own?

You can add the parameters, but only the measurement script on the destination reads them, so the numbers land in that site's reporting rather than yours. That is the normal arrangement for an affiliate or a partner who has asked you to tag inbound links. If nobody is measuring at the other end, the labels are inert and add nothing but length.

Will visitors see the parameters in the address bar?

Yes. They are part of the address and stay visible unless the destination strips or rewrites them, which some sites do on the way to a canonical form. That visibility is worth remembering before putting anything internal into a value. A campaign name is public the moment the link is.