Free UTM Campaign URL Builder
Build trackable campaign links with UTM tags.
What is the UTM Campaign URL Builder?
When traffic lands on your site, analytics can only tell you where it came from if you told it — and that's what UTM parameters do. Skip them and a newsletter click, a paid ad, and a partner link all blur together as 'direct' or 'referral', and you lose the thread on what's actually working.
This UTM builder assembles clean, correctly-encoded campaign URLs so every click is attributed to the right source, medium and campaign.
Last updated: Aug 13, 2026
What does this tool do?
You enter your landing page URL and fill in the campaign fields, and the tool builds a URL with the matching utm_ parameters.
It encodes everything correctly, preserves any existing query parameters, and gives you a copy-ready link — all in your browser.
Key features
Standard UTM tags
source, medium, campaign, term and content.
Correct encoding
Values are safely URL-encoded.
Live preview
The URL updates as you type.
Required-field hints
Nudges you to include the core three.
Private
Runs entirely in your browser.
Example
Common use cases
- Marketers — Track campaigns across channels accurately.
- Email senders — Attribute newsletter clicks correctly.
- Social managers — Tag links per platform and post.
- Paid-ads teams — Line up UTMs with ad campaigns.
- Partnership managers — Measure referral and co-marketing links.
- Founders — See which channels actually drive traffic.
- Agencies — Standardize tagging for client campaigns.
- Anyone sharing links — Know where clicks come from.
Benefits
- It makes campaign traffic show up correctly in analytics.
- It prevents encoding mistakes that break tracking.
- It keeps your tagging consistent across channels.
- It's instant and never leaves your browser.
Tips
- Keep values lowercase to avoid duplicate rows (Email vs email).
- Pick a naming convention and stick to it across campaigns.
- Use utm_source for the referrer, utm_medium for the channel type.
- Reserve utm_term for paid keywords and utm_content for A/B variants.
- Don't add UTMs to internal links — they overwrite the original source.
- Use hyphens or underscores consistently in campaign names.
- Document your conventions so the whole team tags the same way.
- Consider a link shortener for long tagged URLs in social posts.
Common mistakes to avoid
Inconsistent casing
Fix: Standardize on lowercase so analytics doesn't split one source into several.
Tagging internal links
Fix: Only tag inbound campaign links; internal UTMs reset the visit's original source.
Ad-hoc naming
Fix: Use a documented convention for source, medium and campaign values.
Skipping medium or campaign
Fix: Fill the core three (source, medium, campaign) so reports are complete.
How it works
- 1
Enter your URL
The landing page you're linking to.
- 2
Add parameters
Fill in source, medium and campaign.
- 3
Copy the link
Use the tagged URL in your campaign.
Frequently asked questions
Tags added to a URL (utm_source, utm_medium, utm_campaign, and optionally utm_term and utm_content) that tell analytics tools where a visit came from.
Source, medium and campaign are the core three. Term and content are optional, typically used for paid search keywords and A/B variations.
URL tags — utm_source, utm_medium, utm_campaign, and optionally utm_term and utm_content — that tell analytics tools where a visit originated.
Source, medium and campaign are the core three. Term and content are optional, typically for paid keywords and A/B variations.
No. They're for analytics attribution. Avoid putting them on internal links, and use canonical tags so parameterized URLs don't cause duplicate content.
Yes — analytics is case-sensitive, so 'Email' and 'email' become separate entries. Keep everything lowercase.
No. They're just query parameters; they don't affect load time.
No. The URL is built entirely in your browser.
Conclusion
A UTM builder gives every campaign link clean, consistent tracking so your analytics finally tells you what's working. Pair it with the URL encoder and your analytics platform to close the loop on attribution.