Skip to content

UTM Builder

Assemble utm_source, utm_medium and utm_campaign into a tracking URL, and get warned about the things that quietly break reports: uppercase values, spaces, unrecognised mediums and parameters that already exist on the URL.

  • All six UTM parameters
  • GA4 channel-grouping validation
  • Casing and whitespace warnings
  • Detects existing UTM parameters
  • Force lowercase in one click

Builder

Built in your browser, never logged

Where the traffic comes from.

The channel type. GA4 maps this to a channel group.

The specific initiative.

Paid keyword. Optional.

Distinguishes two links in the same message. Optional.

Ties the visit to a campaign ID. Optional.

Enter a landing page URL to start building a tracking link.

How to build a UTM tracking URL

  1. 01

    Enter the landing page URL

    Paste the destination URL. If it already contains UTM parameters, the builder tells you which ones it will overwrite.

  2. 02

    Fill in source, medium and campaign

    These three are the required set. Source is where the traffic comes from, medium is the type of channel, campaign is the specific push.

  3. 03

    Review the warnings

    Warnings flag the things that fragment reports later: uppercase values, spaces and mediums GA4 will not map to a channel.

  4. 04

    Copy the finished URL

    Copy it into your post, email or ad. Every visit through that link carries the parameters into your analytics.

What each parameter is for

utm_source identifies the referrer: twitter, newsletter, partner-blog. utm_medium is the channel *type*: social, email, cpc. utm_campaign names the specific initiative: launch-2026, black-friday.

The other three are optional. utm_term was designed for paid keywords, utm_content distinguishes two links in the same message — the header button versus the footer link — and utm_id ties the visit to a campaign ID for cost import.

Source, medium and campaign are the set worth being strict about. The other three are useful only if you have a plan for reading them.

Case sensitivity is the bug that ruins reports

UTM values are case-sensitive. Newsletter, newsletter and NEWSLETTER are three separate rows in your reports, splitting one campaign into three and making every comparison wrong.

This is easy to cause and tedious to fix, because you cannot retroactively merge the rows without data manipulation. The defence is a convention — lowercase and hyphens, always — applied by everyone who builds links. The lowercase toggle here enforces it for you.

Why GA4 puts your traffic in "Unassigned"

GA4 maps traffic into default channel groups using rules that inspect utm_medium against a fixed list: organic, cpc, email, social, affiliate, referral, display and a handful more. A medium outside that list, like newsletter or linkedin-post, does not match any rule.

The result is a channel group of Unassigned, and traffic that is invisible in the report everyone actually looks at. Use email as the medium and newsletter as the source — that is what the fields are for.

Where not to put UTM parameters

Never on internal links. Clicking a UTM-tagged link inside your own site starts a *new* session in GA4 and reattributes it, so a visitor who arrived from search and clicked your tagged banner gets recorded as banner traffic. The original acquisition source is destroyed.

Not on links you want indexed. Tagged URLs are crawlable and can be indexed as duplicates of the clean page. If tagged URLs are getting indexed, a canonical tag pointing at the clean version is the fix.

And remember UTM parameters are public. Anyone can read them in the address bar, so never encode anything about the recipient — an email address or user ID in utm_content is a data leak.

Frequently asked questions

Are utm_source, utm_medium and utm_campaign all required?

They are not technically required, but with fewer than these three most tools cannot classify the visit properly. Source alone leaves GA4 without a channel group, and skipping campaign makes it impossible to compare one push against another.

Do UTM parameters hurt SEO?

Not directly, but tagged URLs can be crawled and indexed as duplicates of the clean page. Only use UTMs on external links, and make sure your pages carry a canonical tag pointing at the untagged version.

Why is my UTM traffic showing as Unassigned in GA4?

Because utm_medium is not one of the values GA4 recognises in its default channel grouping. Values like newsletter or instagram-story match no rule. Use a recognised medium such as email or social and put the specific platform in utm_source.

Should I use UTM parameters on internal links?

No. In GA4 a UTM-tagged link starts a new session and overwrites the original acquisition source, so you lose the information about how the visitor actually found you. Track internal clicks with events instead.

Does capitalisation matter in UTM values?

Yes, and it is the most common source of messy reports. UTM values are case-sensitive, so Email and email appear as two separate sources. Standardise on lowercase with hyphens.

Can I put a person's email address in utm_content?

You should not. UTM parameters are visible in the address bar, stored in analytics and often shared when someone copies a link. Putting personal data there exposes it and creates a privacy problem under GDPR.

SEO

SERP Snippet Preview

See how your title and meta description will be truncated in Google, measured in pixels.

SEO

URL Slug Generator

Turn any headline into a clean, ASCII-safe URL slug, accents and symbols included.

SEO

FAQ Schema Generator

Turn a list of questions and answers into valid FAQPage JSON-LD, checked against Google's rules.