Add utm_source, utm_medium and utm_campaign to a URL. Term and content are optional. The query is encoded and an existing ? or # is preserved.
Runs in your browser. Nothing you enter is uploaded.
| URL | https://example.com/landing |
|---|---|
| Source, medium, campaign | newsletter, email, launch |
| Result | https://example.com/landing?utm_source=newsletter&utm_medium=email&utm_campaign=launch |
| URL | https://example.com/page?ref=1#top |
|---|---|
| Source, medium, campaign | twitter, social, spring sale |
| Result | https://example.com/page?ref=1&utm_source=twitter&utm_medium=social&utm_campaign=spring+sale#top |
Spaces are encoded as plus signs. The hash stays at the end.
| Field | Query key | Required here |
|---|---|---|
| Source | utm_source | Yes, or the status says it is missing |
| Medium | utm_medium | Yes |
| Campaign | utm_campaign | Yes |
| Term | utm_term | No. Omitted when blank |
| Content | utm_content | No. Omitted when blank |
Build a properly tagged campaign URL so your analytics can tell exactly where your traffic came from. Enter your base URL and fill in the standard UTM fields: source such as newsletter or twitter, medium such as email or cpc, campaign name, and the optional term and content fields for keyword and A B testing. The tool assembles a clean, correctly encoded query string and appends it without breaking any parameters your URL already has. Consistent tags matter because analytics tools treat Twitter and twitter as different sources, so this builder keeps everything tidy and copyable in one click. Use it before you share any link in an ad, email or social post, and your reports will group traffic accurately instead of dumping it into direct or referral. Everything is generated locally in your browser and never logged.
The new parameters are joined with &. A hash is moved back to the end.
encodeURIComponent, then %20 is replaced with +.
No. The URL is built in the browser.
Give your verdict. Sign-in needed to vote and comment.
Link this tool from a README, doc or site. The badge links back to this page.
[](https://yourhack.ai/utm-link-builder)