UTM Link Builder Online — Free
Runs 100% in your browser — your files never leave your device.
Every campaign link needs the same five parameters, and one typo silently breaks attribution. Fill in the destination URL and the UTM fields — the three required ones are enforced, the optional term and content stay out of the URL until you use them — and copy a clean tracking link. Existing query parameters are preserved.
How it works
- 1
Enter the destination URL
The full link you want to track, including https://.
- 2
Fill the UTM fields
Source, medium, and campaign are required; term and content are optional.
- 3
Copy the tracking link
The built URL appears live — one click copies it.
About this tool
What UTM parameters do
UTM parameters are query strings appended to a URL — source, medium, campaign, term, content — that analytics platforms read to attribute visits. The tool builds correctly formatted, consistently named tracking URLs so every campaign lands in the right report bucket.
The naming discipline that saves your analytics
utm_source=Newsletter and utm_source=newsletter are two different rows in your reports. Lowercase everything, use consistent names per channel, and never leave values empty — the builder standardizes as you type, which is most of its value.
The five parameters
utm_source (where the click came from: newsletter, twitter), utm_medium (the channel type: email, social, cpc), utm_campaign (the specific push: spring-launch), and optionally utm_term (paid keywords) and utm_content (which creative or link within the campaign).
Frequently asked questions
Which parameters are required?
Source, medium, and campaign are the trio every analytics platform keys on. Term and content are optional refinements for paid search and A/B testing.
Can I use UTM links internally?
Avoid it — internal UTMs overwrite the attribution of how visitors originally arrived. Tag external campaigns only.
Does the builder work with existing URLs that have parameters?
Yes — it appends the UTM parameters correctly whether or not the base URL already carries query strings.