UTM Campaign Link Builder

Tag a link with source, medium and campaign so your analytics can tell you which post, email or ad actually sent the visit.

Runs in your browser. Your image is never uploaded.

How to use UTM Builder — Free Campaign URL Link Tagger

  1. 1Paste the URL you want to track.
  2. 2Fill in the source, medium and campaign — or start from one of the presets.
  3. 3Copy the finished link and use it in your post, email or ad.

About UTM Builder

UTM stands for Urchin Traffic Monitor, after Urchin — the analytics product Google bought in 2005 and rebuilt into Google Analytics. The tags outlived every rewrite since because they solve a problem nothing else does. A referrer header can tell you a visitor arrived from facebook.com; it cannot tell you which post, which caption, or which of the three links in your bio did the work. Five short parameters on the end of a link move that from guesswork to something you can sort a report by.

Most broken UTM reporting is not a tagging failure but a naming failure. One person writes medium=email, the next writes Email, a third writes e-mail, and the newsletter's traffic arrives as three unrelated rows that each look too small to matter. The fix is dull and it works: pick one vocabulary for medium — social, email, cpc, qr, referral — write it down where the team can see it, and let the tool force everything to lowercase. Campaign names want the same treatment, which is why the tidy option runs them through the same slug rules the rest of these tools use, turning "Spring Sale 2026!" into spring-sale-2026. Short values also help when the link is going into a QR code on a flyer, where every extra character makes the pattern denser to scan.

The mechanics are fussier than they look. The first parameter needs a ?, every one after it needs an &, values have to be percent-encoded exactly once, and a fragment has to stay at the end because anything after a # never reaches the server. Hand-built links get all four wrong regularly, usually by adding a second ? to a URL that already had one. This builder assembles the link with the browser's own URL parser instead of string glue, so existing parameters survive, the fragment is left where it belongs, and you get told when something about the original link deserves a second look. It covers the six classic parameters; GA4's newer platform-level fields are aimed at ad systems rather than hand-typed links and are not included here.

Frequently asked questions

Which UTM parameters do I actually need?
Three: utm_source, utm_medium and utm_campaign. Google Analytics groups traffic on that combination, so a link missing the medium ends up in a bucket you cannot act on. utm_term and utm_content are optional detail — the keyword behind a paid click, and which creative or placement was clicked — and utm_id only earns its place if you import campaign cost data into GA4 and want spend and revenue on the same row.
Do capital letters really matter?
Yes, and it is the most common way a campaign report quietly goes wrong. Values are compared literally, so Facebook, facebook and FaceBook become three separate sources and one campaign's clicks are split three ways with no error to warn you. The lowercase toggle is on by default for that reason; switch it off only if you already have a tagging scheme that uses mixed case consistently.
What if my link already has a query string or a #fragment?
Both are handled and both are flagged. When the URL already has parameters the UTM tags are appended with & rather than a second ?, and the existing parameters are kept exactly as they were. A fragment stays at the very end, because anything after a # is never sent to the server — parameters written after it are invisible to analytics. If the link already carries utm_ tags, the ones you fill in here replace them and the rest are left alone.
Should I put UTM tags on links between pages of my own site?
No. In Google Analytics a tagged internal link normally starts a fresh session and re-attributes the visit, so the channel that genuinely sent the visitor loses the credit to your own page. Keep UTM tags for links that live outside your site: social posts, emails, ads, partner pages, printed QR codes. For internal navigation, use event tracking instead.
Can I use this for Google Ads?
You can, and the preset sets utm_source=google with utm_medium=cpc. In most accounts auto-tagging is the better route, though, because the gclid Google appends carries more detail than five text fields. If you do tag manually and want ValueTrack placeholders such as {keyword}, add them by hand after copying: this builder percent-encodes braces to %7B and %7D, which is correct for an ordinary value but is not what a ValueTrack placeholder needs.
Does it save my links or build them in bulk?
No — it builds one link at a time and keeps nothing. There is no history, no spreadsheet export and no account, and your URLs never leave the page. It also covers the six classic parameters only; GA4's newer utm_source_platform, utm_creative_format and utm_marketing_tactic fields are not offered. For a big campaign, generate one link per channel with the preset buttons and paste them into your own naming sheet.