UTM Builder: How to Create the Right Campaign Link
Learn how a UTM builder tags campaign links so analytics credits the right source, medium, and campaign. Includes naming rules, mistakes, and a QA checklist.
ADS Beast editorial teamPublished 11 min read
A UTM builder is a tool that appends tracking parameters to a URL so analytics platforms can credit a visit to a specific source, medium, and campaign. You paste your destination link, fill in the parameters, and copy the finished tagged URL. Without those tags, most analytics tools file the visit under direct or referral.
In short:
- A campaign URL builder structures five parameters: utm_source, utm_medium, utm_campaign, utm_term, and utm_content.
- Only three are required. The other two exist for paid keywords and creative variants.
- UTM values are case-sensitive, so Email and email become two separate rows in reports.
- Internal links should stay untagged. Tags on them overwrite the original source in the session.
- A consistent naming convention matters more than the tool you use to build the link.
What does a UTM builder actually do?
It takes a plain destination URL and returns the same URL with a query string attached. That query string carries the campaign data your analytics platform reads on page load. The tool itself does not track anything. It only formats the link correctly so the tracking platform can do its job.
The parameters follow a fixed pattern. A tagged link looks like this:
https://example.com/landing?utm_source=newsletter&utm_medium=email&utm_campaign=spring_launch
Everything after the question mark is the query string. Each pair is a key and a value joined by an equals sign, and pairs are separated by ampersands. A utm generator exists as a standalone web page, as a spreadsheet formula, and as a built-in feature inside ad platforms and email tools. The output is identical. What differs is how much the tool validates your input before you copy the link.
The five parameters and what each one does
Three parameters are required. Two are optional and only worth adding when you actually report on them.
| Parameter | Required | What it answers | Typical values |
|---|---|---|---|
| utm_source | Yes | Where the traffic came from | google, newsletter, facebook, partner_name |
| utm_medium | Yes | How it was delivered | cpc, email, social, organic, referral |
| utm_campaign | Yes | Which initiative it belongs to | spring_launch, black_friday, webinar_q2 |
| utm_term | No | Which keyword triggered the click | running_shoes, crm_software |
| utm_content | No | Which creative or link variant was clicked | banner_a, text_link, button_blue |
utm_source identifies the platform or property. utm_medium identifies the channel type, and it is the field people get wrong most often. If you tag a paid social post with medium=social instead of medium=cpc, your paid spend will sit in the same reporting row as your free posts, and you will not be able to separate them later without rebuilding the data.
utm_term and utm_content are optional because most campaigns do not need that level of detail. Use utm_term when you run paid search and want keyword-level reporting inside the URL itself. Use utm_content when you run an A/B test and need to tell two versions of the same placement apart.
Required versus optional parameters: how to decide
The required three cover source, medium, and campaign. That is the minimum for channel comparison in any analytics platform. If you skip any of them, the visit usually falls back to direct or referral, and the campaign row you expected never appears.
The optional two are worth adding only when a report depends on them. Ask one question before you fill them in: will I ever filter or group by this field? If the answer is no, leave it empty. Every extra parameter makes the URL longer, harder to read, and easier to break when someone copies it by hand.
A related decision is whether to tag at all. For paid search on Google or Bing, the platform's auto-tagging already passes campaign data through to analytics. Adding manual UTMs on top of auto-tagging creates duplicate or conflicting attribution. Let auto-tagging handle paid search, and reserve manual UTMs for email, social posts, partner placements, and offline channels where no automatic tagging exists.
How to build a campaign link step by step
- Start with the final destination URL, including the full path. Strip any existing query string first, because leftover parameters from an old campaign will travel with the new one.
- Decide the campaign name before you name anything else. It anchors the whole link and it is the value you will filter on most often.
- Fill utm_source with the platform or property. Use the plain name, not a URL.
- Fill utm_medium with the channel type. Reuse the same medium values across every campaign so channel reports stay clean.
- Add utm_term or utm_content only if a report needs them.
- Lowercase every value and replace spaces with underscores or hyphens.
- Paste the finished URL into the utm builder output field, copy it, and test it in a browser before you distribute it.
- Check the live report the next day to confirm the visit landed under the source and medium you intended.
Step eight is the one people skip. A tag that looks correct in the builder can still land in the wrong report row because of a typo in the medium value or a redirect that drops the query string. Testing in a browser shows you the page loads. Checking the report shows you the attribution worked.
Naming conventions that keep reports readable
Pick one convention and apply it everywhere. Lowercase is the safest default because UTM values are case-sensitive. Email, email, and EMAIL land in three separate rows, and merging them later means reprocessing historical data or rebuilding saved reports.
Spaces break URLs. Replace them with underscores or hyphens before the link goes anywhere. Hyphens read better in a browser address bar, underscores read better in a report column. Either works as long as you do not mix them for the same type of value.
Keep campaign names short and descriptive. A name like spring_launch_2026_eu_newsletter_v2 is harder to scan in a report than spring_launch, and the extra detail usually belongs in utm_content anyway. If you find yourself needing more than four or five segments in a campaign name, that is a sign the campaign should be split into separate campaigns.
Document the convention somewhere the whole team can reach it. The most common attribution failure is not a broken tool. It is two people tagging the same channel with two different medium values.
Common mistakes and how to spot them early
Tagging internal links is the mistake with the longest-lasting damage. When you add UTMs to a link between two pages on your own site, the tag overwrites the original source in the session. A visitor who arrived from organic search and then clicked a tagged internal link gets recorded as arriving from that campaign. Your organic traffic looks smaller and your campaign looks more effective than it was.
Adding UTMs to links inside a single email to your own site has a similar effect unless you specifically want that click counted as a separate event. The same logic applies to links in your site navigation, in a sitemap, and in any structured data. If a crawler or a visitor follows a tagged internal link, the tag travels with them.
Redirects that strip the query string are the second most common problem. A shortener or a redirect rule that rebuilds the URL without carrying the parameters forward will drop your tags silently. The link works, the page loads, and the attribution is gone. Test any shortened or redirected campaign URL in a browser and confirm the parameters are still present in the address bar after the redirect completes.
Mixed capitalization and inconsistent medium values round out the list. Both are easy to fix at the point of creation and expensive to fix afterward.
How long should a UTM-tagged URL be?
There is no hard limit, but anything past roughly 2,000 characters risks failing in older browsers and some email clients. The practical rule is shorter is better. Keep campaign names short, and skip any parameter you do not report on.
If the finished link looks unmanageable, shorten it with a service that preserves the query string. Not every shortener does. Some rebuild the URL from the destination and drop everything after the question mark. Test the shortened link before you send it, and confirm the parameters survive the redirect.
A long URL is also a signal that you are over-tagging. If the query string is longer than the path, you are probably tracking detail you will never look at.
Where not to use UTM parameters
Avoid UTM tags on internal links between your own pages. They overwrite the original source in the session and make organic traffic look like a campaign. The same applies to links inside a single email to your own site unless you want that click counted separately.
For paid ads, let the platform's auto-tagging handle attribution instead of adding manual UTMs. Stacking both creates duplicate data and conflicting source values.
Skip UTMs on links in your sitemap, in structured data, and in navigation menus. Anything a crawler follows should be a clean URL.
What to do next
Build one campaign link end to end before you scale the process. Pick a real campaign, run it through a utm builder, test it in a browser, and check the report the next day. Once the attribution lands where you expect, write the convention down and hand it to whoever creates links next.
If you are setting up the paid side of the same campaign, the account structure matters as much as the tags. The setup steps in this guide to launching Bing Ads cover campaign naming and tracking from the platform side, and it pairs well with a clean UTM convention. Keyword research feeds the utm_term field directly, so it is worth validating your keyword list with the Google Ads Keyword Planner workflow before you tag anything. And if you are writing the landing page the campaign points to, the rules for SEO copywriting with AI apply to campaign pages too, because a tagged link that lands on a thin page wastes the traffic you paid to attribute.
FAQ
What is a UTM builder and what does it do?
A UTM builder is a tool that appends tracking parameters to a URL so analytics platforms can attribute traffic to a specific source, medium, and campaign. It structures five parameters: utm_source, utm_medium, utm_campaign, utm_term, and utm_content. Without those tags, Google Analytics reports the visit as direct or referral, and you lose the ability to compare channels.
Which UTM parameters are required and which are optional?
Only three are required: utm_source, utm_medium, and utm_campaign. utm_term and utm_content are optional and mainly used for paid search keywords or A/B testing creative variants. Skipping the required three breaks attribution in most analytics tools, and the visit usually lands under direct or referral instead.
Why do my UTM links show up as lowercase or broken in reports?
UTM values are case-sensitive, so Email, email, and EMAIL land in three separate rows in your reports. Pick one convention, usually all lowercase, and apply it everywhere. Spaces also break URLs; replace them with underscores or hyphens before you shorten the link.
How long should a UTM-tagged URL be?
There is no hard limit, but anything past roughly 2,000 characters can fail in older browsers and some email clients. Keep campaign names short and skip parameters you do not actually report on. If the link looks unmanageable, shorten it with a service that preserves the query string, and test the redirect before sending.
Where should I not use UTM parameters?
Avoid UTM tags on internal links between your own pages, because they overwrite the original source in the session and make organic traffic look like a campaign. The same applies to links inside a single email to your own site unless you want that click counted separately. For paid ads, let the platform's auto-tagging handle it instead of adding manual UTMs.
Can I use a UTM maker for offline channels?
Yes, and it is one of the few ways to attribute offline traffic in a web analytics platform. Put the tagged link in a QR code on print material, in a radio or podcast read, or in a direct mail piece. The link itself works the same way. What changes is that you cannot rely on auto-tagging, so the manual tags carry the entire attribution load. Test the QR code destination on a phone before you print anything, since some scanners strip query strings.