UTM Link Builder
Build a campaign-tagged URL by adding utm_source, utm_medium, utm_campaign, utm_term and utm_content — plus any extra parameters — to a link, with existing query strings and fragments preserved. Recently built links are kept in your browser only. Runs entirely in your browser.
About this tool
Paste the link you want people to click, fill in the campaign fields, and the tool appends the UTM query parameters that analytics tools read to attribute a visit to a campaign. The five canonical fields are utm_source (where the click comes from — newsletter, google, a partner site), utm_medium (the type of channel — email, cpc, social, referral), utm_campaign (the promotion or initiative), utm_term (a paid-search keyword) and utm_content (a label to tell apart two links that go to the same page). Source, medium and campaign are the trio Google Analytics needs to register a campaign at all, so the tool warns when only some of them are filled. An optional switch lower-cases the source, medium and campaign values, since GA treats Email and email as different channels and mixed casing fragments your reports. Any existing query string on the base URL is kept and a matching utm_ parameter is overwritten rather than duplicated; the #fragment is preserved. Extra rows let you add non-UTM parameters like a manual click ID. The tool builds the URL in your browser, and it keeps the last ten links you saved in this browser's local storage so you can copy a set of them without rebuilding — that list never leaves your machine.
When to use it
Questions
What does each UTM parameter actually do?
utm_source names the origin of the traffic (newsletter, google, an affiliate's domain). utm_medium names the kind of channel (email, cpc, organic_social, affiliate). utm_campaign ties the visit to a named push (spring-sale-2026). utm_term is for the keyword on a paid-search ad. utm_content distinguishes two links to the same destination — a header button versus a footer link, or variant A versus variant B. Analytics tools parse these from the URL when someone lands and record them against the session, so later you can group sessions, conversions and revenue by campaign.
Which parameters are required?
Google Analytics 4 will only recognise a manual campaign if utm_source, utm_medium and utm_campaign are all present — miss one and the session falls back to its default channel grouping and the campaign name is lost. utm_term and utm_content are always optional. This tool flags the case where you have filled one or two of the trio but not all three, which is the most common way tagging goes wrong.
Why does the lowercase option matter?
Analytics platforms match UTM values as exact, case-sensitive strings. Email, email and E-Mail become three separate mediums in your channel report, splitting one real channel across three rows and making the numbers look smaller than they are. The fix is a convention — almost always all-lowercase, with hyphens or underscores instead of spaces — applied every single time. The lowercase switch here normalises source, medium and campaign for you; it deliberately leaves utm_term and utm_content alone because those sometimes carry values where case is meaningful.
What is the difference between utm_term and utm_content?
utm_term was designed for one narrow job: recording the paid-search keyword that triggered the ad. Outside paid search it is usually left empty. utm_content is the general-purpose slot for telling apart links that are otherwise identical — which button, which image, which email in a sequence, which test variant. If you are not running search ads and you want to label a link, utm_content is the field you want.
When should I not add UTM parameters?
Never tag internal links — links from one page of your site to another. When someone clicks an internal link that carries UTM parameters, most analytics tools start a brand-new session and re-attribute the visitor to that campaign, wiping out the original source. It is one of the most common ways to corrupt your own data. Only tag links that live outside your site: in emails, ads, social posts, PDFs, partner sites. Also skip tagging when the platform already does it — Google Ads auto-tagging with gclid, for instance, is better left to do its own thing.
How do UTM tags relate to gclid and fbclid?
gclid (Google) and fbclid (Facebook) are click identifiers the ad platforms append automatically. They are opaque IDs that let the platform reconcile a click with its own ad data — far more detail than a UTM string can hold, including keyword, device and auction data. UTM parameters are readable, manual, and understood by any analytics tool. They coexist: you generally rely on auto-tagging (gclid) for the ad platforms' own channels and use UTMs for everything you place by hand — email, organic social, sponsorships, partner links. Adding UTMs on top of a gclid link is redundant and can even conflict, so don't.
How do I keep my UTM tags consistent across a team?
Write the convention down and make everyone use the same builder. Decide the allowed values for utm_medium (a short fixed list — email, cpc, social, referral, display, affiliate), the casing rule (lowercase), the separator (hyphen), and a naming pattern for utm_campaign that includes the year or quarter. Keep a shared spreadsheet of every tagged link. The failure mode is not one wrong link — it is fifty people each inventing their own spelling of email, at which point the campaign reports are unusable.
Can people see the UTM parameters in the address bar?
Yes. UTM parameters are part of the URL, so they are visible in the address bar, get copied when someone shares the link, and show up in browser history. That has two consequences: don't put anything private or embarrassing in them (no internal codenames you would not want a customer to read), and expect some shares to carry your tags onward, which slightly inflates the tagged channel. Some sites strip UTM parameters with JavaScript after the page loads to keep the displayed URL clean; that is cosmetic and does not affect the analytics hit, which fires first.