What is a UTM builder and why you need it
A UTM builder is a small tool that takes a landing-page address plus a handful of campaign labels and joins them into a single, correctly formatted tracking link. You fill in where the visitor is coming from (source), how they got there (medium) and which promotion sent them (campaign); the builder takes care of the question marks, ampersands, encoding and ordering so that Google Analytics and similar tools read the link the way you intended.
You could, of course, type the parameters by hand. For one link that is fine. For fifty links a week across email, social, paid search and partner placements it stops being fine remarkably quickly. Hand-built links pick up capital letters in one place and not another, a stray space that becomes %20, a second question mark that silently breaks the query string, or a fragment that ends up in the middle of the URL. Every one of those slips fragments your reports: “Newsletter” and “newsletter” become two sources, and a broken query string means the visit is recorded as Direct with no campaign at all.
A builder removes that class of error entirely. The one at the top of this page is deliberately simple: no signup, nothing saved, and it produces a valid URL on every keystroke. When your team grows past a few people or a few dozen links a month, the same idea scales up into shared picklists and enforced naming rules – more on that further down.
How does a UTM link look?
A UTM link is an ordinary web address with extra information appended after a question mark. Everything before the question mark tells the browser which page to load; everything after it is a list of key=value pairs, separated by ampersands, that the page and your analytics script can read. UTM parameters are simply five of those pairs with agreed-upon names. If the address also has a fragment (the part after #), it always comes last, after all parameters.
https://Protocol – how the browser talks to the server.www.example.comHost – the domain being visited./shoesPath – the specific page.?…Query string – begins at the first ? and holds the parameters.utm_source=newsletterQuery parameter – a key=value pair; more are joined with &.#reviewsFragment – scrolls to a section; never sent to the server, always at the end.
What are UTM parameters?
UTM parameters are five standard query-string keys that analytics tools recognise and use to attribute a visit to a campaign. Three of them are required for the attribution to work; two are optional and add extra detail.
| Parameter | Required | What it describes | Example |
|---|---|---|---|
utm_source | Yes | The referrer: the site, platform, publication or list the traffic originates from. | newsletter, google, linkedin |
utm_medium | Yes | The marketing channel or category of traffic. | email, cpc, social |
utm_campaign | Yes | The specific promotion, launch or initiative. | spring-sale, q3-webinar |
utm_content | No | Distinguishes links inside the same campaign – a button versus a text link, or two ad variations. | hero-button, footer-link |
utm_term | No | The paid keyword that triggered the ad; mainly for search campaigns. | running-shoes |
Put together, a fully tagged link looks like this:
https://www.example.com/shoes?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale&utm_content=hero-button&utm_term=running-shoes
When someone clicks it, the analytics script on the landing page reads the five values and records the session under Source “newsletter”, Medium “email” and Campaign “spring-sale”, with the content and term available as secondary dimensions.
Why do we need UTM parameters?
Browsers already send a referrer header that tells the destination site which page the visitor came from – so why tag links at all? Because the referrer is unreliable for a large share of real-world traffic. It is empty when someone opens a bookmark, types an address, or taps a link inside a native app such as a mail client, a messaging app or a social network’s in-app browser. Many email clients strip it. A link from an HTTPS page to an HTTP page drops it for security reasons. Privacy features in modern browsers trim it to the bare domain or remove it altogether.
In every one of those cases the analytics tool has nothing to go on and files the visit under “Direct”. That bucket ends up holding your best email campaign, your influencer placement and the QR code on the trade-show banner, all lumped together with people who really did type your address. You cannot tell which channel is working, so you cannot decide where to spend next.
UTM parameters solve this because they travel inside the URL itself. It does not matter whether the click came from an app, an email or a printed poster: the tags arrive with the visitor and the source, medium and campaign are recorded exactly as you wrote them. The referrer becomes a fallback; the UTM values become the record.
Which tools detect UTM parameters?
The convention began with Google Analytics, and both Universal Analytics and GA4 read all five parameters automatically – GA4 also understands a few extras such as utm_id, utm_source_platform and utm_creative_format. But the format has become a de-facto standard well beyond Google. Product-analytics tools such as Mixpanel, Amplitude and Heap capture UTM values as properties on the first event of a session so you can segment behaviour by campaign. Kissmetrics, Matomo, Plausible, Fathom and most privacy-focused analytics packages recognise them too, usually under a “Campaigns” report.
Outside analytics, marketing-automation and CRM platforms – HubSpot, Marketo, Salesforce Pardot, ActiveCampaign and others – can read UTM values from the landing-page URL and write them onto the contact record, which is what makes lead-source attribution possible. Advertising platforms sit on the other side of the exchange: Google Ads, Meta and LinkedIn can append UTM parameters to every ad link automatically through tracking templates or URL parameters.
The practical takeaway: a correctly built UTM link works everywhere. A broken one – with a doubled question mark or a fragment in the wrong place – fails everywhere, because the URL specification is the same for all of them.
Does the order of UTM tags matter?
No. Query parameters are a set of key=value pairs and every analytics tool looks them up by name, so utm_campaign=sale&utm_source=newsletter is read exactly the same way as utm_source=newsletter&utm_campaign=sale. You can also mix your own parameters (a coupon code, a product id) in between them without affecting attribution.
Two things do matter, though. First, the query string has to start with exactly one question mark – if the landing page already has one, additional parameters must be joined with ampersands, which is the most common mistake in hand-built links. Second, a fragment (#section) must come after the entire query string; anything placed after the # is invisible to the server and to most analytics scripts.
For consistency, this builder always emits the parameters in the conventional order – source, medium, campaign, content, term – after any parameters the page already had. That is purely a readability choice for humans scanning links in a spreadsheet; the tools do not care.
UTM best practices
Most attribution problems are not caused by the technology but by inconsistent humans. These rules prevent the vast majority of them:
- Never tag internal links. A UTM-tagged link from your homepage to your pricing page starts a brand-new session and overwrites the real source. Only tag links that point to your site from somewhere else.
- Tag consistently. Every outbound campaign link should carry the same three required parameters. A campaign that is tagged in the email but not in the paired social post cannot be compared.
- Always use lowercase. Analytics tools are case-sensitive: “Email” and “email” are two mediums. Lowercase everything and you never have to think about it again.
- Use a builder, not your fingers. Encoding, ampersands and fragment placement are exactly the kind of detail people get wrong under deadline pressure.
- Use the same value every time. Pick “twitter” and stick with it – not “tw”, “Twitter” or “x” depending on who built the link.
- No spaces. Spaces become %20 or a plus sign and look messy in reports. Join words with dashes or underscores instead.
- Define a naming convention. Write down the allowed sources and mediums and the pattern for campaign names, and share it with everyone who creates links.
- Use dashes to join multiple data points. A campaign like 2026-q2-launch-eu packs the year, quarter, initiative and region into one value that you can still split apart later in a report.
How to capture UTM codes in form submissions
Web analytics tells you which campaign brought a visitor; it does not tell your sales team which campaign brought a lead. To connect the two, copy the UTM values from the landing-page URL into hidden fields on your forms so they are submitted alongside the name and email address and land in your CRM as properties of the contact.
The pattern is simple. When the page loads, a short script reads the query string, stores the five UTM values plus the document referrer in a first-party cookie or in localStorage, and writes them into hidden inputs named utm_source, utm_medium and so on. Storing them – rather than reading the URL at submit time – matters because most people browse a few pages before they convert, and the parameters are gone from the address bar by then. A 30- or 90-day expiry captures the first-touch campaign even when the form is filled in on a later visit.
<input type="hidden" name="utm_source" id="f-utm-source">
<input type="hidden" name="utm_medium" id="f-utm-medium">
<input type="hidden" name="utm_campaign" id="f-utm-campaign">
<input type="hidden" name="utm_content" id="f-utm-content">
<input type="hidden" name="utm_term" id="f-utm-term">
<input type="hidden" name="referrer" id="f-referrer">
Most form tools – HubSpot, Marketo, Gravity Forms, Typeform, Webflow – support hidden fields natively and several will populate UTM fields for you. Once the values are on the lead record you can report on pipeline and revenue by campaign, which is the point of tagging links in the first place.
Different UTM builder options
There are three broad ways to build UTM links, and the right one depends mostly on volume and how many people are involved.
| Simple builder 2–5 URLs / month |
Spreadsheet 5–20 URLs / month |
UTM management software 20+ URLs / month or teams |
|
|---|---|---|---|
| Pros | Free, instant, nothing to set up. Produces a correct URL every time (if it passes the four tests). | Keeps a history of links, can hold dropdowns for sources and mediums, easy to share with a small team. | Central rules, enforced taxonomy, bulk creation, auto-shortening, QR codes, user permissions and click reports – all in one place. |
| Cons | No memory: naming consistency depends entirely on the person typing. No record of what was created. | Formulas break easily and rarely parse URLs correctly (fragments, existing query strings). Nothing stops people bypassing the dropdowns. | Costs money and takes an afternoon to configure the taxonomy properly. |
| Use when | You are one person creating a handful of links and can keep the naming straight in your head. | A small team needs shared history and light structure, and someone is willing to maintain the sheet. | Several people or agencies build links, reporting has to roll up across teams, or you have been burned by inconsistent data before. |
How to create UTM URLs in bulk
A product launch might need the same landing page tagged for twelve sources, three mediums and four ad variations – over a hundred links that differ in only one or two values. Building them one at a time in a form is tedious and, worse, invites typos exactly where consistency matters most.
The spreadsheet approach is the usual first step: one row per link, one column per parameter, and a formula that concatenates them. It works until you hit a landing page that already has a query string or a fragment, at which point most formulas quietly produce a broken URL. If you go this route, build the formula around a proper parser (our spreadsheet reviews show which templates do) and lock the source and medium columns to dropdowns.
The more robust option is a builder that supports multi-select: choose several sources and mediums at once and the tool generates every combination, applies your naming rules to each, shortens them if you want, and exports the batch as CSV. Because the same rules are applied to all links in the batch, the resulting dataset is clean by construction. That is a core feature of UTM management software and the main reason teams graduate to it from spreadsheets.
Both options are free here: the bulk UTM builder generates every combination (or tags a pasted CSV) and exports the result, and our spreadsheet template uses a formula that passes all four URL tests.
What is a UTM governance model?
A UTM governance model is a naming convention that lives inside the builder rather than in a document nobody reads. Instead of asking people to remember that the medium for paid social is “paid-social” and not “social-paid”, the builder simply offers “paid-social” in a picklist and rejects anything else. Instead of hoping every agency uses the same campaign IDs, the campaign is chosen from a shared list so that spend and results roll up correctly in one report.
The model is made of a few building blocks: picklists for each parameter, dependencies between them (choosing source “google” only offers mediums that make sense for Google), campaign IDs that are created once and reused everywhere, validation rules such as forced lowercase and no spaces, and taxonomies that let different teams have different options while still feeding a single dataset.
Governance in practice
- Picklists
- Dependencies
- Campaign IDs
- Validation
- Taxonomies
US Marketing
in-house
- Region
- US
- Mediums
- cpc · cpm · email
Northstar Paid
agency
- Sources
- google · meta
- Mediums
- cpc · cpm
EMEA Events
field team
- Region
- Europe
- Mediums
- event · email
One clean dataset – every campaign ID rolls up across teams
The builder on this site already applies the basics – preset picklists per channel, forced lowercase, whitespace clean-up and warnings when a medium would land in GA4’s “Unassigned” bucket. Our UTM naming convention guide shows how to write the rules down.
The payoff is that reporting stops being a clean-up exercise. Nobody has to merge “Email”, “email” and “e-mail” in a pivot table, and the number on the dashboard is the number you can act on.
More UTM resources
Further reading from around the web (external links open in a new tab):
- GA4: Collect campaign data with custom URLsGoogle’s official reference for utm_* parameters in GA4
- Google Ads tracking templatesAppend UTM parameters to every ad automatically
- MDN: the URL interfaceHow browsers parse and serialise URLs – the API this builder uses
- RFC 3986 – URI generic syntaxThe specification behind query strings and fragments
- GA4 default channel group rulesHow GA4 maps source / medium to channels
- Google Play Install ReferrerHow Android apps receive campaign data