Free toolNo sign-up

UTM parameter builder

Build properly-encoded UTM URLs. Source / medium / campaign with sensible defaults, lowercase + hyphen convention warnings, copy when done.

Your tracked URL

Fill in the destination URL plus source, medium, and campaign to build the tracked link.

What UTM parameters actually do

UTM parameters are the five utm_*query strings that Google Analytics and every other analytics tool reads to attribute traffic. They were originally an Urchin convention (the U-T-M is "Urchin Tracking Module", after the company Google bought in 2005 to build GA), and they have stuck around because nothing better has come along.

A tagged URL looks likehttps://example.com/page?utm_source=instagram&utm_medium=bio&utm_campaign=summer-launch. When a visitor clicks that, every analytics tool watching the destination knows the click came from Instagram, from the bio link, as part of the summer-launch campaign. Without the tags, the same click is anonymous traffic.

The five parameters and what each one is for

  • utm_source(required). Where the click started its journey: instagram, tiktok, youtube, an email list name, the publication that ran your guest piece. Think "platform".
  • utm_medium(required). The kind of placement the link sat in: bio, story, post, email, newsletter, paid. Think "channel type".
  • utm_campaign(required). The specific push this click belongs to: summer-launch, holiday-2026, creator-collab-brandx. Think "reason for the post".
  • utm_term(optional). Originally a paid-search keyword field; mostly unused outside Google Ads. Skip it unless you're running ads.
  • utm_content(optional). Variant identifier when you're running two versions of the same campaign (image-a vs image-b, button-blue vs button-green). Skip it unless you're testing creatives.

The convention everyone agrees on

UTM values are case-sensitive. Instagram andinstagram are two different sources in your analytics dashboard, which is the single most common way creators accidentally split their own data. The safe convention every analytics tool defaults to:

  • Lowercase always.
  • Hyphens instead of spaces (summer-launch, not summer launch).
  • No special characters beyond hyphens and underscores.
  • Short, consistent values you can remember six months later.

The hierarchy that scales

Source and medium are the most important to standardize. If you always use utm_source=instagram for every Instagram click (not Instagram, not insta, not IG), and you always useutm_medium=biofor every bio-link placement, you can slice your dashboard by source and instantly see "Instagram bio sends 60% of my conversions" without manual cleanup.

Campaign is where you get specific: summer-launch-2026,black-friday, brand-x-collab. The names only matter to you; consistency over time matters more than the exact naming.

Three mistakes the builder prevents

  1. Spaces in values.A URL with a raw space breaks the moment it's shared in an email or social post. The builder URL-encodes everything safely.
  2. Missing the question mark. Hand-writing UTMs means forgetting whether to start with ? or& depending on whether the URL already has query params. The builder handles both.
  3. Capital letters by accident. The convention warning below the form flags any field that diverges from the lowercase-and-hyphen pattern, so you catch it before the tagged URL goes live.

How long before UTMs show up in analytics?

Most analytics tools (GA4, Plausible, Fathom, Umami, first-party page analytics like the one linksync ships) attribute the click in the same session as the visit. The UTM values show up in the dashboard within minutes for live data and within the hour for aggregated views.

Questions creators ask about this

Does this tool store the URLs or values I type?

No. The builder runs entirely in your browser; nothing is sent to a server. It works offline once the page is loaded.

Why does the tool warn me when I type Instagram instead of instagram?

Because UTM values are case-sensitive. Analytics dashboards will treat 'Instagram' and 'instagram' as two separate sources, which silently splits your data and makes per-source attribution useless. Lowercase + hyphens is the convention every tool defaults to.

When should I use utm_term and utm_content?

Use utm_term only for paid-search keywords (Google Ads, Bing Ads). Use utm_content for variant identifiers when you're running two versions of the same campaign (image-a vs image-b). Most creators leave both empty.

Will UTMs work on affiliate links?

Yes, but with a catch. Most affiliate programs strip or ignore UTM parameters on the destination side, so you can't see the breakdown inside the affiliate dashboard. The way around it: send affiliate clicks through your own redirect first (a link-in-bio platform that tracks clicks server-side, your own /go/[link] page, etc.) so the UTM attribution happens on your side before the handoff.

Is there a length limit?

Browsers handle URLs up to ~2,000 characters cleanly; most analytics tools cap individual UTM values at 100 characters. Keep them short and human-readable and you'll never bump into either.

Tools save minutes. linksync saves the workflow.

The bio that holds your affiliate links: product cards with prices, one-tap discount codes, per-link click analytics on the free tier.