Free tool
Tag your campaign links so the results land in the right report
Build a correctly encoded campaign URL in your browser. It keeps any query string already on the page, overwrites a duplicate utm_ tag instead of stacking a second one, and keeps your casing consistent so one campaign does not split into four rows.
UTM Campaign URL Builder
The page you want people to land on. Paste it exactly as it appears in the browser.
Where the click comes from: google, newsletter, linkedin, partner-site.
The kind of traffic: email, cpc, social, referral, affiliate, qr.
The specific push this link belongs to: spring-service-plan, q3-webinar.
Optional. The keyword, for manually tagged paid search.
Optional. Which creative or link position, so two links in one email stay separable.
GA4 does not normalise these values. Facebook, facebook and FaceBook arrive as three separate sources and split one campaign across three rows of your report. Consistent lower case is the cheapest way to stop that happening. Turn this off only if you have a naming convention that deliberately uses capitals.
Your tagged URL
Everything on this page happens in your browser. The URL is never sent to us, logged, or stored.
What this does and does not do
- Adds utm_source, utm_medium, utm_campaign, utm_term and utm_content to a URL you supply, encoded the way a browser expects.
- Keeps any query string already on your URL, and overwrites an existing utm_ parameter rather than appending a second copy of it.
- Runs entirely in your browser. Nothing you type is sent to us, logged, or stored anywhere.
- Does not shorten the link, generate a QR code, or keep a history of what you have built.
- Does not check that the destination page exists, returns a 200, or is not itself a redirect. Open the finished link before you send it.
- Does not connect to your analytics account, so it cannot tell you whether a source or campaign name is already in use.
The point of it
Untagged links are the reason half your traffic says "direct"
Every analytics account has a large, unexplained block of direct traffic. Some of it is genuinely people typing your address. Most of it is not: it is a link from a newsletter that arrived untagged, a QR code on a leaflet, a link pasted into a group chat, a PDF someone downloaded and opened three weeks later.
Campaign parameters exist to close that gap for the traffic you control. They are five optional pieces of text appended to a URL, and the browser passes them straight through to your analytics tool, which reads them and files the visit under the campaign you named. Nothing clever happens. The value is entirely in the discipline.
That is also why the tooling matters less than the convention. A builder stops you fat-fingering an ampersand. A convention stops you and three colleagues describing the same email programme four different ways for a year.
What actually goes wrong
Four ways tagging quietly stops telling you the truth
A broken tagged link announces itself. The expensive failures are the ones where the link works perfectly and the number it produces is wrong.
- One campaign is showing up as four.
- Casing and spelling drift is the default state of any team larger than one person. Facebook and facebook are two sources. spring_sale and spring-sale are two campaigns. Each variant looks smaller than the campaign really was, and none of them is comparable to last quarter.
- The tagged link broke the page.
- This happens when a parameter is appended with a question mark onto a URL that already had one, producing two query strings the server does not know how to parse. It also happens when a value with a space or an ampersand is pasted in raw instead of encoded. Both are avoidable by building the URL properly rather than by concatenating strings.
- Internal links are resetting the source.
- Someone tags the link from the homepage to the offers page so they can see how many people click it. From that moment, every visitor who clicks it is reattributed to the internal campaign, and the organic search visit that actually produced the sale disappears from the report. This is the most common self-inflicted attribution wound there is.
- Two links in the same email are indistinguishable.
- Without utm_content, the header button and the footer text link report identically. You know the email worked, and you have no idea which part of it did. Filling in one extra field at send time is the difference between a general answer and a decision you can act on next month.
Reference
What each parameter is actually for
The definitions people struggle with are source and medium. Keep the question each one answers in mind and the choice usually makes itself.
| Dimension | The question it answers | A good value | The common mistake |
|---|---|---|---|
| utm_source | Which specific place did this click come from? | newsletter, linkedin, partner-blog, yelp | Using a channel name like "social" here, which belongs in medium |
| utm_medium | What kind of traffic does that place represent? | email, cpc, social, referral, affiliate, qr | Inventing a new medium per campaign, which makes channel grouping useless |
| utm_campaign | Which specific push does this link belong to? | spring-service-plan, q3-webinar, black-friday-2026 | Naming it after the asset rather than the campaign, so nothing aggregates |
| utm_term | Which keyword triggered this, on manually tagged paid search? | emergency plumber | Filling it in on channels where it means nothing, adding noise |
| utm_content | Which creative, link or position within the same send? | header-button, footer-link, variant-b | Leaving it empty, then being unable to tell two links in one email apart |
The part that lasts
A naming convention that survives contact with a marketing team
Write this down somewhere the whole team can see it, and decide it once. Every hour spent arguing about a convention is cheaper than a year of reports nobody trusts.
- Everything in lower case, always, with no exceptions for brand names
- Hyphens between words, never spaces or underscores — spaces have to be encoded and underscores are harder to read at a glance
- A short, fixed list of allowed mediums: email, cpc, paid-social, organic-social, referral, affiliate, qr, display. New mediums need a reason, not a preference
- Campaign names built as theme-then-date, so spring-service-plan-2026 sorts and aggregates predictably a year later
- utm_source is always the platform or publication, never the channel category
- utm_content is mandatory whenever a single send contains more than one link to the same page
- No campaign parameters on any link between pages on your own domain, ever
- Store the built links somewhere shared — a spreadsheet is fine — so the same campaign is never tagged two different ways by two people
- Review the acquisition report once a quarter specifically looking for near-duplicate values, and fix the convention rather than the data
Where it ends
What campaign tagging will never be able to tell you
Tagging measures a click on a link you controlled. That covers less of real marketing than most dashboards imply, and being clear about the gap is what stops a team over-trusting the number.
Links that are copied and pasted lose their tags. A recommendation shared in a private message, a link read out on a podcast, a screenshot of your page in a group chat — all of that arrives as direct or as nothing at all, and it is often the traffic that converts best. The same applies to anyone who sees the campaign, does not click, and searches for your brand two days later. That visit is organic search, and the campaign that caused it gets no credit at all.
Privacy protections in email clients, tracking-parameter stripping in some browsers, and consent decisions in Europe all remove or reduce what arrives. None of this makes tagging pointless. It makes it a floor rather than a total: a reliable count of the traffic you can prove, sitting under a larger amount of demand you created and cannot itemise.
Questions
Common questions about campaign tagging
What is the difference between utm_source and utm_medium?
Source is the specific place the click came from — google, linkedin, mailchimp, the name of a partner site. Medium is the category of traffic that place represents — cpc, email, social, referral, affiliate.
The useful test: if you replaced the source with a competitor of the same kind, would the medium stay the same? A click from LinkedIn and a click from X are different sources and the same medium. That is the relationship the two fields are designed to express.
Does casing really matter in UTM parameters?
Yes, in the reporting. Google Analytics 4 does not fold case, so Facebook, facebook and FaceBook are stored as three separate sources and your campaign appears as three rows that each look smaller than the campaign actually was.
Lower case everywhere is the convention most teams settle on because it removes the decision. The builder above applies it by default and lets you switch it off if your organisation has a naming standard that uses capitals deliberately.
Should I add UTM parameters to links between pages on my own site?
No. A tagged internal link starts a new campaign attribution mid-visit, so the credit for anything that happens afterwards moves away from whatever brought the person to the site in the first place.
If you want to know which internal promotion or banner is working, that is an event, not a campaign. Track the click as an event and leave the acquisition data alone.
Do I need UTM tags on my Google Ads links?
Usually not for source, medium and campaign. Google Ads auto-tagging adds a gclid that passes campaign detail into Analytics with more accuracy than you can achieve by hand, and manual tags can override it if they are configured to.
Manual tagging is still worth it for platforms without an equivalent, for offline and print QR codes, for email, and for anything where you need a level of detail the platform does not pass on its own.
Is anything I paste into this tool sent to your servers?
No. The URL is assembled by JavaScript running in your browser using the standard URL and URLSearchParams interfaces. There is no request behind it, no endpoint, and nothing is written to a database.
You can confirm that yourself: open your browser developer tools, switch to the network tab, and build a link. Nothing is sent.
Will tagging a link change how the page ranks?
No. Campaign parameters are a measurement device, not a ranking signal. They do have one indirect search consequence worth knowing about: parameterised versions of a URL can be crawled and treated as separate addresses.
That is what canonical tags are for. Make sure the page canonicalises to its clean URL, and tagged links stay a reporting decision rather than an indexing problem.
If the numbers in your reports do not agree with each other
Tagging is the easy half of attribution. The hard half is a measurement setup where the ad platform, the analytics account and the CRM all count the same lead once. That is worth a conversation.
If we don't deliver the work we agreed to deliver for reasons within our control, you don't pay for the undelivered work. Read our guarantee
Related
Where to go next
- measurement and analytics workTagging is one input into an attribution model that has to hold up.
- paid media managementWhere tagging conventions matter most, and break most often.
- email campaignsThe channel where utm_content earns its keep.
- preview a title and meta description
- bringing a cost per lead downYou cannot cut what you cannot attribute.
- how organic and paid search compare
Last updated · Reviewed by Zubair Afzal