Free tool

Free UTM builder: tag one link or a whole CSV

A UTM builder adds utm_source, utm_medium and utm_campaign parameters to a URL so your analytics can tell which newsletter, post or ad sent each visit. Fill in the fields (or paste a CSV for bulk tagging) and copy the tagged link — it all runs in your browser.

Updated

Presets

Tagged URL

https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=october-launch

Checks

Looks clean: lowercase, no spaces, a medium GA4 recognizes.

Key takeaways

  • Always set utm_source and utm_medium. utm_campaign is optional but makes reports comparable.
  • UTM values are case-sensitive: "Newsletter" and "newsletter" become two rows. Pick one convention (lowercase-with-dashes is the safest) and stick to it.
  • Use mediums GA4 recognizes — email, social, cpc, paid_social, referral, affiliate, display — or the traffic lands in "Unassigned".
  • Never put UTMs on internal links. They overwrite the original source of the visit.

What does a UTM builder do?

It appends up to five standard query parameters to a link. When someone clicks it, your analytics tool reads them from the landing page URL and files the visit under that source, medium and campaign — instead of guessing from the referrer, which is often missing for email, apps, PDFs and messaging. The parameters were defined by Urchin (the "U" in UTM), which Google bought and turned into Google Analytics; today every analytics tool reads them, from GA4 to cookieless tools like VisitTrack.

ParameterWhat it answersExample values
utm_sourceWhich site, list or publisher sent the visit?newsletter, linkedin, google, producthunt
utm_mediumWhat kind of channel was it?email, social, cpc, paid_social, referral, affiliate
utm_campaignWhich campaign or launch is it part of?october-launch, black-friday-2026, brand-search
utm_contentWhich link or creative inside the same placement?header-link, footer-cta, ad-variant-b
utm_termWhich paid keyword (mostly for search ads)?privacy-analytics, ga4-alternative
utm_idA campaign ID, used by GA4 for cost-data imports.cmp_2026_10
The six UTM parameters GA4 reads (it also reads utm_source_platform, utm_creative_format and utm_marketing_tactic, which few teams use).

How to build a UTM link in four steps

  1. 1.Paste the landing page URL. The builder keeps any existing query parameters and moves a #fragment to the end, where browsers expect it.
  2. 2.Pick a preset (Newsletter, LinkedIn, Google Ads…) or type a source and medium. Presets use mediums that GA4's default channel rules recognize.
  3. 3.Add a campaign name, and utm_content if you have more than one link in the same email or post.
  4. 4.Copy the tagged URL. The checks underneath flag spaces, capitals, missing mediums and mediums GA4 won't classify — fix them before the link goes out, because a sent email can't be edited.

Bulk mode: tagging dozens of links at once

Switch to Bulk (CSV) and paste a spreadsheet with a header row: a url column plus any of source, medium, campaign, term, content and id. The builder tags every row, applies your naming convention to every value, flags rows with problems and gives you a CSV with a new tagged_url column. Nothing is uploaded — the CSV never leaves your browser.

url,source,medium,campaign,content
https://example.com/pricing,newsletter,email,october-launch,header-link
https://example.com/blog,linkedin,social,october-launch,
A minimal bulk CSV. Empty cells are simply left out of the URL.

UTM examples for common channels

Channelutm_sourceutm_mediumGA4 channel it lands in
Your newsletternewsletteremailEmail
Organic LinkedIn postlinkedinsocialOrganic Social
Facebook / Instagram adsfacebookpaid_socialPaid Social
Google Ads (manual tagging)googlecpcPaid Search
Sponsored newsletter slotthe-newsletter-namesponsorship or referralPaid Other (if the medium contains "paid" or "cp") or Referral
Affiliate partnerpartner-nameaffiliateAffiliates
Podcast mentionpodcast-nameaudioAudio
QR code on a flyerflyerqrUnassigned (no GA4 rule for "qr") — use "offline" or "referral" if you want it classified

Not sure where a combination will end up? Paste it into the referrer channel checker, which applies GA4's default channel rules and shows the rule that matched.

Common UTM mistakes (and how to avoid them)

  • Mixed case. utm_source=LinkedIn on one post and linkedin on the next splits one channel into two rows. GA4 matches channel rules case-insensitively, but its source/medium reports don't merge them.
  • Spaces. "spring sale" becomes spring%20sale or spring+sale depending on who encoded it — two different values again. Use dashes.
  • UTMs on internal links. A banner on your own homepage tagged utm_source=homepage starts a new session in many tools and erases where the visitor really came from.
  • Inventing mediums. utm_medium=tweet or =post has no GA4 rule; the visit falls into Unassigned. Use social (organic) or paid_social (ads).
  • Putting UTMs after the #. In example.com/#/pricing?utm_source=x the parameters are part of the fragment, which never reaches the server and is ignored by most trackers. Put them before the #.
  • Tagging Google Ads by hand when auto-tagging is on. gclid already carries the data; manual UTMs can conflict with it. Let auto-tagging do its job unless you have a reason.

Already have a link and want to check it? Use the UTM parser — paste any URL and it breaks out each parameter and lints it with the same rules.

Do UTM parameters affect SEO?

Not if your pages declare a canonical URL. A tagged link is technically a different URL, so without a canonical tag search engines could index example.com/?utm_source=x as a duplicate. With <link rel="canonical"> pointing at the clean URL — which most frameworks and CMSs add by default — Google consolidates them. Don't use UTMs on links between your own pages, and don't put tagged URLs in your sitemap.

From UTM clicks to revenue

Tagging tells you which campaign brought visitors. The harder question is which campaign brought customers. VisitTrack records utm_source, utm_medium and utm_campaign on each visit and connects them to payments from Stripe, Paddle, Lemon Squeezy, Polar or Razorpay, so you can see revenue per campaign — without cookies or a consent banner when you use cookieless mode. See first-touch attribution for how the original campaign is credited when someone pays days later.

Frequently asked questions

Which UTM parameters are required?

Only utm_source is strictly required — without it most tools ignore the other parameters. In practice always set utm_medium too, because GA4 and most other tools use the medium to decide the channel, and add utm_campaign whenever you want to compare campaigns.

Are UTM parameters case-sensitive?

Yes. Analytics tools store UTM values exactly as they appear in the URL, so "Email", "email" and "EMAIL" show up as three separate rows. The simplest fix is to always use lowercase, with dashes instead of spaces — the builder's naming-convention setting does this automatically.

Should I use dashes or underscores in UTM values?

Either works; consistency matters more than the choice. Dashes are slightly more common and read better in URLs. Avoid spaces entirely, because different tools encode them as %20 or +, which creates duplicate values.

What utm_medium should I use for social media?

Use social for organic posts and paid_social (or cpc) for ads. Those values match GA4's default channel rules for Organic Social and Paid Social. Values like tweet, post or story don't match any rule and end up in Unassigned.

Can I add UTMs to links that already have query parameters?

Yes. The builder appends UTMs with & and keeps your existing parameters. If the URL already has UTM parameters, the new values replace them rather than adding duplicates, which many tools would otherwise read inconsistently.

Do UTM links hurt SEO?

No, as long as the destination page has a canonical tag pointing at the clean URL, which most sites have by default. Just don't use UTMs on internal links between your own pages, and keep tagged URLs out of your sitemap.

Is this UTM builder free and private?

Yes. It's free, needs no account, and runs entirely in your browser: the URLs and CSVs you paste are never sent to our servers.

Related tools and guides

See which campaigns actually bring paying customers

VisitTrack ties every UTM campaign to the revenue it generated in Stripe, Paddle or Lemon Squeezy. Cookie-free, one script tag, 14 days free.