Free tool
UTM Builder
Use this free utm builder to tag your campaign links, so your analytics can tell you which channel actually sent the visitor. Fill in where the link goes and the three parameters every analytics tool groups by, and the tagged URL appears as you type. Start from a channel if you would rather not remember whether LinkedIn is social or referral.
One campaign usually runs in five or six places at once, so this builds a whole set rather than one link at a time: add each channel to the list, then copy them all or take the lot as a CSV. Nothing is uploaded, and your destination URLs and campaign names never leave the tab. Putting a link on something printed? Feed the result into the QR code generator.
A preset only fills source and medium. Everything else is yours, and you can edit either afterwards.
Put in a destination URL and the three required parameters.
One campaign usually runs across several channels. Add each tagged link here, then take the whole set out at once.
How to build a UTM link
Five steps, no account and nothing to install.
- Paste the destination URL. Exactly as it is, including any parameters or any #section it already carries. Those are kept, and the campaign parameters are placed where analytics can actually read them.
- Start from a channel. Twelve of them, from Facebook and LinkedIn to QR code and print. A preset only fills source and medium, and you can edit either afterwards.
- Name the campaign. Use the same name everywhere, because that is the row you will be looking for in the report. Source, medium and campaign are the three every analytics tool groups by, so all three are required here.
- Add the optional ones if you need them. utm_content is how you tell two links on the same page apart, which is what makes an A/B test readable. utm_id ties the campaign to imported ad cost. utm_term carries a paid keyword.
- Add each channel to the list, then take the set out. Copy one link, copy them all, or download a CSV with every parameter in its own column to drop into a campaign sheet.
More free tools
Built for our own work, free for yours. No sign-up on any of them.
Font Clamp
QR Code Generator
Email Signature Generator
Color Contrast Checker
Schema Markup Generator
Meta Tag Preview
Image Converter
Case Converter
Favicon Generator
Image Resizer
PDF Compressor
Merge PDF
Split PDF
What people tag campaign links for
Almost always the same question: which of the things we did actually brought anyone in.
Launching one campaign across six channels
The same offer goes out on email, three social accounts, a paid ad and an affiliate. Tag each one here, add it to the list, and you get a set that all reports under a single campaign name.
Finding out which post actually worked
Two links to the same landing page tell you nothing apart. Give each one a different utm_content and the report separates them, which is the whole mechanism behind any readable A/B test.
Putting a link on something printed
A poster, a business card or a van has no referrer at all, so without tagging that traffic lands in direct and is invisible. A tagged link behind a QR code is the only way print gets credit.
Proving the newsletter is worth writing
Email clicks often arrive as direct traffic because the referrer is stripped. Tagging turns “we think the newsletter works” into a number somebody can act on.
Handing links to an influencer or affiliate
Give each partner their own utm_source and the reporting settles the question of who sent what before anyone has to argue about it.
Keeping a campaign sheet that matches reality
Download the CSV and every link sits beside the parameters it was built from. Six months later that file is the only record of what a campaign name actually meant.
Frequently asked questions
What the three required parameters mean, why case matters, and the one place you should not use them.
What do source, medium and campaign actually mean?
Source is WHERE the click came from, as a name: google, facebook, newsletter, a partner site. Medium is HOW it arrived, as a category: cpc, email, social, referral, affiliate, offline. Campaign is WHICH effort it belongs to, and it is the name you will scan the report for. The useful test is that two different sources should often share a medium. Twitter and LinkedIn are both social. If you find yourself putting the same word in both boxes, one of them is wrong.
Why does it lowercase everything by default?
Because these values are case sensitive in every analytics tool, and almost nobody expects that. Facebook and facebook are two separate rows, so one campaign tagged by two people on two days reports as two campaigns, each with half the numbers. It is the single most common way a set of tags quietly ruins its own report. Lowercasing everything makes that impossible, which is why the switch is on. You can turn it off, and if you do you are warned when capitals are present.
My link has a #section on the end. Will that work?
Yes, and this is the case worth knowing about. The parameters have to go BEFORE the #, because everything after it is a fragment that the browser never sends to the server and analytics therefore never sees. Adding them on the end by hand produces a link that works perfectly for the visitor and records absolutely nothing, so the problem is invisible until the campaign is over and the report is empty. This builder places them correctly and tells you it has.
Can I tag links between pages on my own site?
You can, but it is almost always a mistake. In GA4 a tagged link starts a NEW session and overwrites the original traffic source, so a visitor who arrived from a paid ad and then clicked your tagged internal banner gets recorded as having come from the banner. The ad loses the credit for everything that follows. Use utm parameters on links pointing INTO your site from somewhere else. For tracking what people click once they are already on the site, use events instead.
Does this work with GA4, or only Universal Analytics?
Both, and everything else. These parameters are not a Google format: they are a plain convention that GA4, Matomo, Plausible, Fathom, Adobe, HubSpot and essentially every analytics product reads. Nothing here is specific to one tool. GA4 does add one of its own, utm_id, which lets it join imported advertising cost to the campaign, so that field is here too.
Do I need to tag my Google Ads links?
Usually not. If auto-tagging is switched on, Google Ads appends its own gclid parameter and the campaign data flows across without you doing anything, so hand-tagging is unnecessary and can complicate the reporting. Tag the places nothing tags for you: email, organic social, partners, print and QR codes. The Google Ads preset is here for the cases where auto-tagging is off or unavailable.
Are my URLs and campaign names sent anywhere?
No. The link is assembled in your own tab and nothing is uploaded, which matters more here than on most tools: an unannounced campaign name and a landing page that is not public yet are both things you would rather not hand to a third party. The page does send three counters, which are how many links were built, how many were copied or downloaded, and one per visit. Those are numbers only and carry nothing about your URLs.
What if the URL already has parameters on it?
They are kept. An existing query string is joined with an ampersand rather than a second question mark, and any utm parameter the URL already carried is REPLACED rather than added a second time, so you cannot end up with two values for the same key and an analytics tool picking whichever it likes. Values are percent-encoded too, so an ampersand or a space inside a campaign name does not truncate it.
Want something like this on your own site?
Free tools are a small part of what we do. The rest is websites and digital products for businesses serious about growth, whether you are launching, scaling or transforming.