UTM URL Builder
Build trackable campaign URLs with UTM parameters, updates live as you type.
About the UTM URL Builder
UTM parameters are how analytics tools like Google Analytics tell campaigns apart once traffic actually arrives, tagging each link with its source, medium, and campaign name. This builder appends them to a URL with proper encoding, merging cleanly even if the base URL already carries a query string, ending up with one clean link to share.
The three parameters that actually matter most
utm_source, utm_medium, and utm_campaign are the three GA4 treats as the core of a campaign's identity, source is where the click came from (newsletter, facebook, a partner site), medium is the channel type it came through (email, social, cpc), and campaign is the specific push it belongs to (spring_sale, product_launch). The same source can carry different mediums, a link posted organically on Facebook is source=facebook, medium=social, while a paid Facebook ad pointing at the same page is source=facebook, medium=cpc, distinguishing the two is the entire reason these tags exist.
Term and content, and when they're worth using
utm_term and utm_content are optional and mostly relevant for paid search and A/B testing. Term traditionally identifies the paid keyword that triggered an ad, content differentiates between multiple links pointing at the same destination from the same campaign, useful for telling a header link apart from a footer link in the same email when both point to the identical page. Skipping both is completely normal for a simple campaign link that doesn't need that level of granularity.
Case sensitivity is a real, common mistake
UTM values are case-sensitive in Google Analytics, Newsletter and newsletter get tracked as two separate sources rather than merged into one, silently splitting a single campaign's data across two rows in a report. Picking a lowercase, consistent naming convention before building links, and sticking to it across every campaign, avoids fragmenting data that should have been reported as a single source.
What happens with a URL that already has query parameters
This builder uses the browser's own URL parsing to add UTM parameters onto an existing query string rather than appending a second, conflicting one, and if a UTM key is set twice, it overwrites the earlier value instead of duplicating the parameter. Pasting in a URL that already has tracking parameters or other query string values from elsewhere keeps those intact alongside the new UTM tags rather than requiring them to be stripped out first.
Why long, tagged URLs cause their own problems
A fully tagged UTM link gets long and unwieldy fast, five extra parameters stacked onto a URL that might already have its own query string. That's rarely a problem in an email or an ad platform where the raw link is invisible to the person clicking it, but it's worth shortening with a link shortener before dropping a tagged URL into a printed flyer, a video description, or anywhere the raw string would actually be visible and off-putting. The tracking data survives a redirect through most link shorteners, since the UTM parameters are just part of the destination URL the shortener points to.
Keeping campaign links consistent across a team
The biggest source of messy analytics isn't usually a missing tag, it's inconsistent naming between whoever built one campaign's links and whoever built the next one, cpc versus paid-search, spring-sale versus spring_sale. A short shared naming convention, even something as simple as always using underscores and always lowercase, keeps campaign data comparable across months and across whoever happens to be building the link that week, rather than fragmenting the same channel into a dozen slightly different labels in a report.
Frequently Asked Questions
Which UTM parameters are actually required?
None are strictly required by the URL itself, but utm_source, utm_medium, and utm_campaign are the three Google Analytics treats as a campaign's core identity. Skipping them means the traffic still gets tracked, just without a clear source, medium, or campaign label attached to it.
Does capitalization matter in UTM values?
Yes. Google Analytics treats UTM values as case-sensitive, so "Newsletter" and "newsletter" are recorded as two different sources. Using a consistent, usually lowercase, naming convention across every campaign link avoids splitting what should be one data source into several.
What's the difference between utm_source and utm_medium?
Source is where the click came from, like facebook or newsletter. Medium is the type of channel it came through, like social, email, or cpc. The same source can pair with different mediums, an organic Facebook post and a paid Facebook ad both have source=facebook but different medium values.
What if my URL already has query parameters?
They're preserved. UTM parameters are added alongside any existing query string rather than replacing it, and if a UTM key happens to already be present, its value gets updated instead of the parameter being duplicated.