UTM Builder: Campaign URLs That Report Cleanly
UTM parameters are how analytics knows a visit came from your newsletter rather than from a search. They are also trivially easy to get wrong in ways nothing warns you about: a capital letter, a stray space or a medium value that does not match a recognised channel will quietly split one campaign across three rows or drop it into the Other bucket. This builder tags URLs correctly, preserves parameters the link already had, flags the naming mistakes as you type, and lets you assemble a batch and export it as CSV. Everything runs in your browser.
Table of Contents
What UTM Parameters Are
They are query parameters your analytics reads. Appended to a link, they travel with the visitor and tell your reporting tool where the click came from, in your own words rather than a guess.
They exist because referrers are unreliable. Traffic from an email client, a messaging app or a document often arrives with no referrer at all, which is how the direct bucket ends up full of visits that were nothing of the kind.
They are a convention, not a standard. The names date back to Urchin, the product that became Google Analytics. Every major analytics tool now understands them, which is why they outlived their origin.
They describe the link, not the person. A UTM tag says which link was clicked. Everything else your analytics knows comes from elsewhere.
How to Use This Builder
Pick the preset that matches your channel. It fills source and medium with values your analytics already groups correctly, which is most of the battle.
Name the campaign the same way every time. Consistency matters more than the scheme you choose. Lowercase with hyphens is applied here by default because it is the one convention that never breaks.
Use content to separate links within one campaign. Two links to the same page in the same email deserve different content values, or you cannot tell which one people actually clicked.
Build the whole set at once. Add each variation to the batch and export the CSV, so the links you publish and the ones in your notes cannot drift apart.
The Five Parameters Explained
Source is the specific origin. A named place: facebook, newsletter, google, partner-site. This is the most granular of the three required values.
Medium is the type of channel. A category rather than a place: social, email, cpc, referral, affiliate. Analytics builds its channel groupings from this field, which is why an invented value lands in Other.
Campaign is the initiative. The thing you are running: spring-sale, product-launch, black-friday-2026. Keep it stable across every channel so the whole campaign reports together.
Term and content are the optional pair. Term carries a paid keyword and is rarely needed outside search advertising. Content distinguishes two links that are otherwise identically tagged.
A Naming Convention That Holds Up
Lowercase always. UTM values are case sensitive, so Facebook, facebook and FaceBook are three separate rows. Nothing warns you, and the split is invisible until you look closely at a report.
Hyphens, not spaces or underscores. A space becomes %20 and looks broken in every report. Hyphens read cleanly and survive being pasted anywhere.
Write the convention down. The value of a naming scheme comes entirely from everyone using the same one. A shared document beats individual judgement every time.
Include dates in campaign names. spring-sale-2026 is unambiguous next year in a way that spring-sale is not.
Channel Groupings and Why Medium Matters
Analytics groups traffic from the medium value. It looks for specific strings, so email, social, cpc, affiliate and referral all land where you expect.
An invented medium falls into Other. A value such as social-media or ppc looks reasonable and does not match, which is why traffic disappears from the channel report while still appearing in the campaign report.
Paid search is cpc. Not ppc, not paid, not adwords. The warnings above call this out because it is a common and quietly costly mistake.
Do not tag paid clicks twice. Ad platforms with automatic tagging add their own identifier. Adding UTMs on top can override it and break the connection between cost data and conversions.
When Not to Use UTM Tags
Never on internal links. Tagging a link from one of your pages to another starts a new session and reattributes the visitor, destroying the original source. This is the most damaging UTM mistake there is.
Not on your canonical URLs. A tagged URL is a distinct URL. Make sure your canonical tags point at the clean version so search engines index one page rather than several.
Not where a redirect will drop them. Some redirects strip query parameters entirely, so tag the final destination and test the link before publishing it.
Privacy and What Tags Reveal
UTM values are visible to everyone. They sit in the address bar, get pasted into chats and appear in any log the visitor passes through. Nothing about them is private.
Never put personal data in them. An email address or a customer identifier in a UTM value is exposed in the URL and copied wherever the link goes, which is both a privacy problem and often a compliance one.
Keep internal names out of them. An internal codename or a client name in a campaign value is published the moment the link is.
Reading the Results Afterwards
Attribution is not the whole story. A UTM tag records the click that brought someone in on that visit, not everything that persuaded them over the previous month.
Expect leakage. People strip parameters, share clean links and open things in apps that rewrite URLs. Tagged traffic is a floor rather than a full count.
Compare like with like. The value of consistent tagging is in the comparison between channels and between campaigns, which only works if the naming held steady.
Common Mistakes to Avoid
Mixed capitalisation. The single most common cause of a campaign appearing three times in one report, and the reason lowercase is on by default here.
Tagging internal links. It resets attribution mid visit and makes your own site appear as a traffic source.
Gluing parameters on with a question mark. If the URL already has a query string the result is malformed. This tool parses the URL properly, which is why it handles that case without you thinking about it.
Leaving medium blank. Source without medium is not enough for analytics to attribute the visit, so the whole tag is wasted.
Frequently Asked Questions
A privacy note: UTM values are part of the URL and are visible to anyone who sees the link, including anyone it is forwarded to. Never put an email address, a customer identifier or anything else personal into a campaign parameter.