Also available in: Español · Português · Français · العربية
UTM builder
Tag a link with campaign parameters and see which default channel group Google Analytics will file it under.
What is a UTM builder?
UTM parameters are extra pieces of query string added to a link so that analytics can tell where a visit came from. They are just ordinary URL parameters with agreed names: utm_source says where the traffic came from, utm_medium says how it arrived, utm_campaign names the campaign. Nothing about them is magic, and nothing on the receiving page has to be configured. Analytics reads them off the address and files the visit accordingly.
A builder exists because writing them by hand goes wrong in dull, expensive ways. A missing parameter, a capital letter, a space, a second question mark instead of an ampersand, or a parameter accidentally placed after the fragment: each of these either loses the tagging or splits one campaign into several rows. This one assembles the link properly and then, more usefully, tells you what Google Analytics is going to do with it.
There are nine documented parameters. The five familiar ones are source, medium, campaign, term and content; Google has since added campaign ID, source platform, creative format and marketing tactic. Only source and medium are worth calling required, because every channel rule reads one or both of them.
How to use it
- Paste the page URL. It can already carry query parameters or a fragment; both survive. If you leave the scheme off, https is assumed. Any UTM parameters already on the URL are replaced rather than duplicated, and the panel tells you which ones it overwrote.
- Fill in at least source and medium. Those two are what the channel rules read. The other seven are optional and only matter if you report on them. Each field carries a one-line note about what it is actually for.
- Read the channel panel before you copy the link. It names the default channel group the traffic will land in, and where that depends on how Google categorises your source it shows all three outcomes rather than guessing. Below it, anything that will split or lose your data is listed.
Why “newsletter” is not Email
Google publishes the rules that define its default channel groups, and the surprising thing about them is how literal they are. The Email channel is defined as source or medium matching one of exactly four values: email, e-mail, e_mail, or e mail. It is a list of values, not a search for the idea of email. So utm_medium=newsletter matches nothing, and neither does mail, e-blast or email-blast. That traffic lands in Unassigned, which is where Analytics puts anything that satisfies none of the rules.
The same literalism catches other sensible-sounding choices. Affiliates is medium equals affiliate exactly, so partner does not qualify. Referral is one of referral, app or link. Display is one of display, banner, expandable, interstitial or cpm. A medium of qr, print, or podcast reads perfectly clearly to a human and matches nothing at all.
The other trap is that two of the rules are not about the medium alone. Paid Search is a search-engine source and a medium matching the paid pattern; Paid Social is a social source and the same pattern. So utm_medium=cpc becomes Paid Search from Google and Paid Social from Facebook, but from a newsletter or a partner site it matches no rule and goes to Unassigned. The medium that everyone thinks of as the paid medium does nothing on its own.
That is why this tool shows three answers when the source category matters. Google maintains the lists of which domains count as search engines and which as social networks, those lists change, and this page does not pretend to hold a copy. Where the answer is the same whichever way your source is categorised, it says so and shows one channel.
The smaller things that still cost you data
Values are reported exactly as they were written, so Email and email are two different values and appear as two rows. Nothing merges them afterwards. This is the most common way a single campaign ends up looking like two, and the fix is simply to decide on lower case and never deviate. The tool flags any capital letter for that reason.
Spaces survive but they do not survive unchanged. A query string encodes a space as a plus sign, so spring sale becomes spring+sale in the link and that is what you will be reading in reports. It is correct and it reverses cleanly, but a hyphen or underscore is easier to live with, and a stray space at the start or end of a value is pure noise.
Getting the URL structure right matters too, and it is easy to get wrong by hand. Parameters belong before the fragment, not after it: anything following a hash is never sent to the server and is not part of the query. If the link already has parameters, the new ones need an ampersand rather than a second question mark. This tool handles both, which is most of the reason to use one rather than typing.
Honest limits
The channel prediction follows Google's published default channel group definitions, and those are the defaults. If your property uses a custom channel group, your own rules apply instead and this page cannot know them. Google also revises the default definitions from time to time, so treat the answer as what the documented rules say rather than a guarantee about a specific report on a specific day.
This tool has no opinion about whether your tagging scheme is any good, because that is a question about your reporting rather than about the link. Consistency matters more than any particular vocabulary: pick one set of values for medium, write them down, and use them everywhere. The one thing worth borrowing from Google is the medium vocabulary itself, since those values are what the channel rules actually recognise.
One thing deliberately not built here is a link shortener or any kind of click tracking. Both would mean the link pointing at us rather than at you, which would put a dependency in the middle of your campaign and give us data about your visitors. The link this page produces points where you told it to and nothing about it comes back to us.
Finally, tagged links are visible to anyone who receives them, and internal links on your own site should not be tagged at all: doing so restarts attribution and credits the visit to your own campaign rather than to whatever originally brought the person in.
Why is it free?
Because it is string assembly and there is nothing to run. No server is involved: the link is built in your browser, and nothing you type is uploaded, logged or stored anywhere. Campaign names and landing pages often reveal a plan that has not launched yet, which is a good reason for them not to travel.
So there is no account, no sign-up and no tracking added to your link. The engine and the 82 checks that verify it against Google's published channel rules sit in the repository beside the page.