Your first client is free.

Free UTM Builder

Build properly encoded tracking URLs in seconds. No signup, no limit, and the parameters already on your destination URL survive.

Query parameters already on this URL are kept.

Where the click came from.

How it was paid for or delivered.

The campaign this click belongs to.

Optional

Which creative or link, for split tests.

Paid keyword, or audience on social.

Tracking URL

https://example.com/product?utm_source=meta&utm_medium=paid_social&utm_campaign=nike_meta_pur_nl_brd

  • utm_sourcemeta
  • utm_mediumpaid_social
  • utm_campaignnike_meta_pur_nl_brd

What each parameter is for

utm_source

The platform the click came from: meta, google, tiktok. Pick one spelling per platform and never vary it. GA4 treats Meta and meta as two different sources.

utm_medium

How the traffic was bought or delivered: paid_social, cpc, email. This is what groups channels together, so it matters more than it looks.

utm_campaign

The campaign this click belongs to. Make it match the campaign name in the ad account exactly, or reconciling spend against sessions becomes manual work every month.

utm_content

Which creative or which link. On paid social this is the ad, and it is the column that eventually tells you which hook worked. On email it separates the header link from the footer one.

utm_term

The paid keyword on search. On social there is no keyword, so most buyers use it for the audience instead. Either is fine as long as the whole account agrees.

A realistic set

utm_source=meta
utm_medium=paid_social
utm_campaign=nike_meta_pur_nl_brd
utm_content=ugc_painpoint_hook03_sarah_v2

Where tracking usually goes wrong

Mixed casing

Facebook, facebook and FaceBook are three rows in your report and one channel in reality. Lowercase everything and the problem disappears.

Spaces in values

A space becomes %20 or + depending on who encodes it, and now you have two campaigns again. Use underscores or hyphens, and pick one.

Tagging internal links

A UTM on a link between two pages of your own site starts a new session and credits the conversion to that link rather than to whatever paid for the visit. Only tag inbound traffic.

Losing existing parameters

If your destination already carries something like ?variant=black, appending tracking by hand usually breaks it. This builder keeps it, because it parses the URL rather than concatenating strings.

Managing UTMs across multiple clients?

Save your naming conventions, abbreviations and tracking rules so every buyer on the account tags the same way.

Create your free workspace