🔗UTM Link Builder

Generate a tracking URL with UTM parameters

How to build a tracking URL with UTM parameters

Telling apart the visitors who came from an ad, a newsletter and a social post means tagging each link with utm parameters. Typing them by hand invites misplaced question marks and misspelled keys. Enter the address and your campaign details here and a ready-to-paste tracking URL comes out.

Of the five parameters, utm_source (where the click came from), utm_medium (how it arrived) and utm_campaign (which campaign it belongs to) are required. utm_term carries the paid search keyword and utm_content separates creatives or link variants inside one campaign; leave either blank and it is simply left off the URL.

If the address already carries a query string, those values are kept and the new keys are appended with an ampersand; otherwise the query starts with a question mark. A trailing hash fragment is moved back to the end so anchor jumps keep working, and any utm_ keys that were already on the URL are replaced rather than duplicated. Values are run through encodeURIComponent, so spaces and non-Latin characters will not break the link. Analytics tools treat values case-sensitively and would report Email and email as two different mediums, which is why the lower-case option is on by default.

Frequently asked questions

What happens if my URL already has parameters?

They are kept and the new keys are appended with an ampersand. Any utm_ parameter that was already there is replaced with your new value so nothing is duplicated.

Can values contain spaces or accented characters?

Yes, they are encoded so the link stays valid. For readable reports it is still better to leave the hyphen and lower-case options switched on.