UTM Campaign URL Builder

Build campaign-tagged tracking URLs · validates & auto-cleans the base URL, URL-encodes every parameter, zero tracking data leaves this page.
BASE URL
OFF
waiting for input
utm_source
OFF
required
utm_medium
OFF
required
utm_campaign
OFF
required
ENCODING / MERGE
OFF
no params yet
OUTPUT
OFF
not ready

Base URL & Validation

The tool auto-cleans your base URL before appending tracking params:

  • Protocol — missing http:// / https:// is added automatically. Only http/https/mailto are allowed.
  • Query merge — if the URL already has a query (e.g. ?id=5), the UTM parameters are appended with a & so existing params are preserved.
  • Fragments — any #hash is kept intact at the very end of the URL.
base + ?existing=1&utm_source=...&utm_medium=...&utm_campaign=...&utm_term=...&utm_content=... #fragment

utm_source

Where the traffic is coming from — the referrer of your traffic. Typical values: newsletter, google, facebook, twitter, linkedin.

This parameter is required; the tool will not build a final URL without it.

utm_source=google

utm_medium

How the campaign is delivered. This is a required parameter. Standard values:

  • email — email marketing
  • cpc — cost-per-click paid search
  • social — social media posts
  • cpm — paid display
  • affiliate — partner links
  • organic — free search

The tool offers common choices but you may type any value.

utm_medium=cpc

utm_campaign

The name of the campaign that ties this URL to a marketing effort. This is a required parameter.

Convention is to keep it readable and lowercase-hyphenated, e.g. spring-sale-2026, but any value is accepted and will be URL-encoded.

utm_campaign=spring-sale-2026

Encoding & Query Merge

Every parameter value is passed through encodeURIComponent so spaces, &, =, and non-ASCII characters become safely encoded. The breakdown table shows both the encoded form sent in the URL and the decoded value you entered.

Optional parameters (utm_term, utm_content) are included only when you provide a value — empty fields produce no parameter.

"spring sale 2026" → spring%20sale%202026

Output & Copy

Ready means: a valid base URL plus the three required params (source, medium, campaign) are present. The final URL is assembled and the copy button transfers it to your clipboard.

The breakdown table underneath lists each UTM parameter, its encoded value as it appears in the URL, and its decoded value for verification.

everything client-side · no data is transmitted
🌐 Target URL
Protocol optional — auto-added. Existing query merged with &.
📌 Required Parameters
e.g. newsletter, google, facebook
email, cpc, social … type any
the campaign name for this link
📋 Optional Parameters
paid-search keyword (optional)
variant / ad identifier (optional)
Live Preview
Start typing to assemble your tracking URL…
🔝 Tips

Keep parameter names lowercase for consistency with Google Analytics. All values are URL-encoded automatically — you can paste values exactly as you'd write them (spaces, symbols and all). Empty optional fields are simply omitted from the link.

🔗 Final Tracking URL
🗒️ Breakdown
ParameterEncoded valueDecoded value