Free tool

Free UTM builder

This free UTM builder (also called a UTM generator or campaign URL builder) tags any link with the five standard UTM parameters, live, in your browser. Pick a source and medium preset, fill in your campaign name, and copy a clean, consistently formatted tracking URL — then run it through fewly's URL shortener to make it short and trackable too.

UTM builder

Build a campaign URL with the five UTM parameters, then shorten and track it — all in your browser.

FreeNo sign-up100% private — runs in your browser
Tagged campaign URL

Enter a website URL and fill in source, medium, and campaign to build your link.

Existing query parameters on your website URL are preserved — UTM parameters are merged in and only override matching keys. Nothing you type is uploaded to a server.

What is a UTM parameter?

A UTM parameter is a small tag added to the end of a URL as a query string — the part after the ?. UTM stands for Urchin Tracking Module, named after Urchin Software, the web analytics company Google acquired in 2005 to build what became Google Analytics. UTM parameters themselves don't change what a visitor sees on the page; they're invisible to the user. What they do is tell your analytics platform — Google Analytics, fewly's link analytics, HubSpot, Mixpanel, or anything else reading query strings — exactly where a click came from.

Without UTM tags, analytics tools can usually tell you the referring domain (say, facebook.com or gmail.com), but they can't tell you which specific post, email, or ad drove the click. Two links pointing to the same landing page look identical without tagging. UTM parameters solve that by letting you label each link with the exact source, medium, and campaign it belongs to, so when someone clicks through and converts, you know precisely which piece of marketing to credit — or cut.

A tagged URL looks like this:

https://example.com/landing?utm_source=newsletter&utm_medium=email&utm_campaign=summer-sale&utm_content=header-link

Everything after the ? is a query string made of key-value pairs joined by &. Each utm_* key is just a convention — there's nothing magic about it — but it's a convention that essentially every analytics platform on the market recognizes and parses automatically.

It's worth being precise about what UTM parameters are not. They are not a security feature — anyone can view, copy, or strip them from a URL, so never rely on a UTM value for anything that needs to be trustworthy or tamper-proof. They're also not required for a link to work: a URL functions identically with or without its query string, so adding tags never breaks a page or a redirect. And they're not the same as an affiliate ID, a referral code, or a short-link slug, even though all four sometimes ride along in the same URL — a UTM parameter's only job is to describe the marketing context of the click for your own analytics.

The 5 UTM parameters, explained with examples

There are five standard UTM parameters. Three are effectively required for useful reporting, and two are optional refinements for when you need more granularity.

  • utm_source — the platform or publisher sending the traffic. This answers “where did the click come from?”
    Examples: google, facebook, newsletter, partner-blog.
  • utm_medium — the marketing channel or delivery mechanism. This answers “how was it delivered?”
    Examples: cpc, email, social, referral, organic, qr.
  • utm_campaign — the specific initiative or promotion the link belongs to. This answers “which campaign is this?”
    Examples: summer-sale-2026, product-launch, black-friday.
  • utm_term (optional) — historically used to record the paid search keyword that triggered an ad, back when Google Ads didn't auto-tag this. Still useful for manually tracking keyword-level performance across ad networks.
    Example: running+shoes.
  • utm_content (optional) — differentiates similar content or links within the same campaign, such as A/B test variants or multiple links in one email. This answers “which specific link or creative was clicked?”
    Examples: header-cta, footer-link, variant-b.

A minimal but genuinely useful tagged link only needs utm_source, utm_medium, and utm_campaign — that's why the builder above marks those three as required. Add utm_term and utm_content only when you need that extra level of detail; tacking them on every link when you don't need them just adds noise to your reports.

Here's a worked example to make the five parameters concrete. Say your team is running a summer promotion and links to it from three places: a Google search ad, an Instagram story, and a newsletter with two different call-to-action buttons. All three eventually point at the same landing page, but each URL is tagged differently:

  • Google ad: utm_source=google, utm_medium=cpc, utm_campaign=summer-sale-2026, utm_term=running+shoes
  • Instagram story: utm_source=instagram, utm_medium=social, utm_campaign=summer-sale-2026, utm_content=story-swipe-up
  • Newsletter header button: utm_source=newsletter, utm_medium=email, utm_campaign=summer-sale-2026, utm_content=header-cta
  • Newsletter footer button: utm_source=newsletter, utm_medium=email, utm_campaign=summer-sale-2026, utm_content=footer-cta

Notice that utm_campaign stays identical across all four links — that's what lets you roll every click up into one “summer-sale-2026” report while still being able to drill into exactly which channel, and even which specific button, performed best. That combination — one stable campaign value, varying source/medium/content — is the core pattern behind almost every UTM strategy.

UTM naming conventions: lowercase, hyphens, consistency

UTM parameters are the one place in marketing where being boring pays off. Analytics platforms treat Newsletter, newsletter, and NEWSLETTER as three separate values — your traffic gets split three ways in reports for no reason. A naming convention prevents that from ever happening. Three rules cover almost every case:

  • Always lowercase. UTM values are case-sensitive in most analytics tools. Standardizing on lowercase for every value eliminates the single most common source of fragmented reporting.
  • Use hyphens, not spaces or underscores. Spaces get URL-encoded into %20 or +, which makes links harder to read and copy. Hyphens stay clean in the URL bar and are the de facto web standard for multi-word slugs (this is also why the toggle above defaults to on).
  • Agree on a naming scheme before you launch, not after. Decide once whether campaigns are named summer-sale-2026 or 2026-summer-sale, and write it down somewhere your whole team can see. The specific scheme matters less than everyone using the same one.

It also helps to keep a running list of the exact utm_source and utm_medium values your team uses — a shared spreadsheet or Notion doc works fine — so nobody invents a new spelling of “linkedin” six months from now. The source and medium chips in the builder above are seeded with the most common values for this exact reason: pick from the list instead of retyping it.

A few more conventions are worth adopting once the basics are locked in. Avoid special characters beyond hyphens — no #, @, or / inside a value, since some of those have their own meaning in a URL and will get encoded or misread. Keep campaign names date-stamped when a promotion repeats every year or quarter (black-friday-2026 beats a bare black-friday that silently gets reused and blended with last year's numbers). And resist the urge to cram extra information into utm_campaign that really belongs in utm_content — a campaign is the initiative, content is the variant within it, and mixing the two makes filtering reports much harder later.

UTM templates by channel

Different channels call for different utm_medium values. Here's a starting template for the four most common cases — adjust utm_source and utm_campaign to match your actual send.

Channelutm_sourceutm_mediumutm_content example
Emailnewsletter / klaviyoemailheader-cta / footer-link
Organic socialinstagram / linkedin / xsocialbio-link / carousel-post
Paid search (CPC)google / bingcpcad-variant-a
Print / QR codeflyer / poster / packagingqrstorefront-poster

Paid social sits between organic social and CPC — use utm_medium=paid-social to keep boosted posts and ad-platform spend separate from organic reach in your reports. QR codes are worth calling out specifically: because a printed poster or product label can't be edited after it ships, always run the destination through a URL shortener first (more on that below) so you can fix the landing page later without reprinting anything.

Common UTM mistakes to avoid

  • Inconsistent casing and spelling. Facebook, facebook, and FB all show up as separate rows in your analytics. Pick one spelling per source and stick to it — or use the presets above so you never retype it.
  • Tagging internal links. UTM parameters are for traffic arriving from outside your site. Adding them to internal navigation overwrites the original session's source in most analytics tools, corrupting your attribution data.
  • Forgetting utm_campaign. Source and medium alone tell you the channel worked, but not which specific push, so you can't tell a one-off promo from evergreen content sharing the same channel.
  • Leaving spaces in values. A value like summer sale gets encoded as summer%20sale or summer+sale in the actual URL — technically valid, but ugly and error-prone to type or copy. Hyphens avoid the problem entirely.
  • Sending a raw, unshortened tagged URL. A fully tagged URL is long, exposes your exact campaign structure to anyone who looks at it, and looks unpolished in an email, text, or on a printed flyer. Shortening it fixes all three.
  • No shared naming convention. If everyone on the team invents their own source/medium spelling, the campaign report fragments into dozens of near-duplicate rows that need manual cleanup before anyone can trust the numbers.

Why shorten a UTM-tagged link?

A fully tagged campaign URL is functional but not something you'd want to put in front of a real audience. Compare https://example.com/landing-page?utm_source=newsletter&utm_medium=email&utm_campaign=summer-sale-2026&utm_content=header-cta to a short link like fewly.tech/r/summer26. The short version is what actually goes in the email, the tweet, the bio link, or the QR code — the long tagged URL keeps doing its analytics job behind the scenes without ever being visible to the person clicking it.

Shortening a UTM link with fewly gets you three things a raw URL can't: a branded, memorable link instead of a wall of query-string text; click analytics on top of whatever your destination-site analytics already captures, so you can see engagement even before a visitor lands and fires a pageview; and the ability to redirect the destination later — useful for the QR-code and print scenario above, where the physical link can never change but the landing page might need to.

There's also a reliability angle. Long tagged URLs are easy to corrupt: pasting one into a Word document or a chat app that auto-formats links can silently truncate the query string or mangle an & character, which quietly breaks the tracking without breaking the link itself — the page still loads, it just loses attribution. A short link removes that whole failure mode because there's nothing fragile left for the recipient to touch; the tagging lives safely on the server side of the redirect.

Who uses UTM tracking

  • Growth & performance marketers tag every paid and organic channel so budget gets attributed to the campaigns that actually drive signups or revenue, not just the last channel a visitor happened to click.
  • Email marketers tag individual buttons within the same send to see whether a header CTA or a footer CTA converts better, without needing a separate A/B testing tool.
  • Social media managers compare bio links, story swipe-ups, and individual posts across platforms using one consistent utm_source per network.
  • Agencies tag every client deliverable with the agency and client name baked into utm_campaign, so performance reporting can be filtered per client from one shared analytics view.
  • Affiliate & partnership teams use UTM parameters alongside a partner's own referral code to see which partner content — a blog post, a newsletter mention, a podcast link — is actually converting.
  • Product & lifecycle teams tag in-app links, changelog emails, and onboarding nudges to measure which prompts drive feature adoption.

How UTM data shows up in your reports

Once a tagged link is clicked, most analytics platforms — Google Analytics 4, fewly's link analytics, HubSpot, and similar tools — parse the query string on that first pageview and store the five UTM values against the resulting session. From there, they typically expose the data as a dedicated source / medium report (a combined dimension, e.g. “newsletter / email”) with campaign as a secondary breakdown, and term/content available as further drill-downs for the sessions that carried them. That's the direct payoff of tagging consistently: a source/medium/campaign report is only as clean as the values you put into the URLs that fed it, which is exactly why the naming conventions above matter more than any single feature of the tool generating the link.

One nuance worth knowing: UTM parameters describe the session that clicked the link, not necessarily every later action a visitor takes. If someone clicks a tagged email link today and converts three weeks later from an unrelated organic search, most default attribution models will credit the later, unrelated session unless you've configured multi-touch attribution. UTM tagging gives you the raw data either way — it's the attribution model on top that decides how credit gets split.

Frequently asked questions

What is a UTM builder?
A UTM builder (or UTM generator) is a tool that constructs a properly formatted, tagged campaign URL for you — you fill in the source, medium, and campaign name, and it assembles the query string correctly so you don't have to hand-write it.
What are the 5 UTM parameters?
utm_source (where the traffic came from), utm_medium (the channel, e.g. email or cpc), utm_campaign (the specific promotion), and the two optional refinements utm_term (paid search keyword) and utm_content (differentiates links or variants within the same campaign).
Should UTM parameters be lowercase?
Yes. Most analytics platforms treat UTM values as case-sensitive, so 'Newsletter' and 'newsletter' are tracked as two different sources. Standardizing on lowercase avoids fragmented reports.
Do UTM parameters affect SEO or change the page?
No. UTM parameters are purely for analytics tracking — they don't change what the visitor sees, and search engines generally canonicalize tagged URLs back to the clean version, so they don't create duplicate-content issues when your canonical tags are set up correctly.
Should I shorten a UTM-tagged URL?
Yes, for anything a real person will see or click — emails, social posts, bio links, QR codes, and print. The full tagged URL is long and exposes your campaign structure; a short link (like one from fewly) hides that complexity while still passing all the tracking through to your destination page.
What's the difference between utm_source and utm_medium?
utm_source is the specific platform or publisher (e.g. facebook, newsletter), while utm_medium is the broader channel type (e.g. social, email). Facebook can appear with medium 'social' for an organic post or 'paid-social' for a boosted one — the source stays the same, the medium changes.

Now shorten & track that campaign link

fewly turns your tagged URL into a short, branded link with built-in click analytics — free to start, no credit card.