UTM Builder

Build campaign URLs with source, medium, campaign, term and content parameters.

Open tool

Overview

The UTM Builder assembles a campaign-tracked URL with the standard parameters — utm_source, utm_medium, utm_campaign, utm_term, utm_content, plus the newer utm_id. It validates each value (no spaces, no uppercase by convention), encodes special characters, and produces a copy-ready URL.

Useful for marketers and growth teams learning how to build UTM tracking URLs or how to set utm_source vs utm_medium correctly. Reach for it tagging emails, social posts, paid ads, partner placements, or any link where attribution should flow back to analytics.

How it works

UTM parameters are appended to a URL as query string keys read by Google Analytics, GA4, Adobe Analytics, and most other tools. utm_source is the originating system (newsletter, twitter, partnerco), utm_medium is the channel category (email, social, cpc, referral), utm_campaign is the campaign name, utm_term is the keyword for paid search, utm_content distinguishes variants.

The builder lowercases values by convention (so Twitter and twitter don't fragment your reports), URL-encodes spaces and special characters, and warns when a value contains tracking-killer characters like & or =.

Examples

  • A newsletter link → ?utm_source=newsletter&utm_medium=email&utm_campaign=launch-spring-2026.
  • A paid Google search ad → ?utm_source=google&utm_medium=cpc&utm_campaign=brand&utm_term={keyword}&utm_content=ad-1.
  • A partner placement → ?utm_source=partnerco&utm_medium=referral&utm_campaign=q2-feature.
  • An A/B test on social → same source/medium/campaign with different utm_content per variant.

FAQ

utm_source vs utm_medium?

Source is the specific platform (e.g. twitter). Medium is the category (social). A consistent medium taxonomy is more important than a fancy source naming scheme.

Should I tag internal links?

No. Internal UTMs overwrite the original campaign attribution. Use Google Tag Manager events or a separate internal-campaign mechanism instead.

Case sensitive?

Yes — Twitter and twitter are different in analytics. Lowercase everything by convention to avoid fragmented reports.

Why is my UTM not appearing in analytics?

Most often a redirect strips the query string, a JavaScript router replaces the URL before the tracker fires, or the user landed on a cached version of the page. Verify with the GA debug view.

Try UTM Builder

An unhandled error has occurred. Reload ×