Marketing Tools Thiago Castro 4 min de leitura

UTM Parameters Explained (With Builder)

UTM parameters track where your traffic comes from. Here's how to use them correctly without breaking your analytics.

Ver como Web Story
In this article
  1. What UTM Parameters Actually Do
  2. The 5 UTM Parameters Explained
  3. Mistakes That Break Your Analytics
  4. Naming Conventions That Scale
  5. Reading UTM Data in GA4
  6. Our Free UTM Builder

Last quarter I ran the same campaign on LinkedIn, Twitter, and my newsletter. The landing page got 2,400 visits. Google Analytics said 1,800 came from "direct" traffic. That's not direct. Those people clicked links. But without UTM parameters, GA4 had no idea where they actually came from. Three months of campaign spend with useless attribution data.

What UTM Parameters Actually Do

UTM parameters are tags you add to the end of a URL. When someone clicks that tagged link, the parameters travel with them to your site. Google Analytics reads those parameters and attributes the visit to whatever source, medium, and campaign you specified.

Without UTMs, GA4 guesses where traffic came from based on the HTTP referrer header. The referrer is often empty (email clients strip it), wrong (some social apps show as "direct"), or too generic ("google.com" tells you nothing about which campaign drove the click). UTMs remove the guessing. You tell GA4 exactly where the click originated.

A tagged URL looks like this: yoursite.com/page?utm_source=linkedin&utm_medium=social&utm_campaign=product-launch-jan-2026. Ugly? Yes. But your link shortener hides it from users while preserving the data for analytics.

The 5 UTM Parameters Explained

utm_source

This identifies WHERE the traffic comes from. The specific platform, website, or sender. Examples: google, facebook, newsletter, partner-blog, reddit. Think of it as answering "which website or platform did this person click from?"

Be specific. Don't use "social" as a source. That's what utm_medium is for. The source is the actual platform: linkedin, twitter, instagram. If you run ads on Google, the source is "google" not "ads" or "search."

utm_medium

This identifies HOW the traffic reached you. The marketing channel or mechanism. Examples: cpc (cost per click), email, social, referral, display, video. Think of it as answering "what type of marketing brought this person?"

GA4 uses utm_medium to categorize traffic into default channel groupings. If you use non-standard medium values, your traffic might end up in "(Other)" which makes reports useless. Stick to GA4's recognized values: organic, cpc, email, social, referral, display, affiliate, video.

utm_campaign

This identifies WHY you sent the traffic. The specific promotion, launch, or initiative. Examples: summer-sale-2026, product-launch-v2, weekly-digest-47. Think of it as answering "which marketing effort does this click belong to?"

Campaign names should be specific enough to identify without additional context. When you look at GA4 in 6 months, "q3-2026" means nothing. "black-friday-ergonomic-desks-2026" tells you exactly what it was.

utm_term and utm_content

These two are optional and used less frequently. utm_term originally identified paid search keywords. If you're running Google Ads with manual tagging, you'd put the keyword here. For most campaigns outside paid search, skip it.

utm_content differentiates variations within the same campaign. If your email has two different CTA buttons linking to the same page, use utm_content=header-button and utm_content=footer-button to see which one gets more clicks. Useful for A/B testing link placement.

Mistakes That Break Your Analytics

Spaces in values: utm_campaign=spring sale becomes spring%20sale in some browsers, spring+sale in others, and "spring sale" in your reports. Three entries for one campaign. Use hyphens: spring-sale.

Inconsistent capitalization: utm_source=Facebook, utm_source=facebook, utm_source=FACEBOOK. GA4 treats these as three different sources. Your Facebook traffic splits into three rows in reports. Always use lowercase.

UTMs on internal links: This kills your session data. When a user clicks an internal link with UTM parameters, GA4 starts a new session attributed to that UTM source. A returning user who clicks your blog's internal navigation suddenly counts as "new" traffic from your own site. Never tag internal links.

Forgetting utm_medium: Without a medium, GA4 can't properly categorize your traffic into channel groupings. It falls into "(Other)" and disappears from most default reports. Always include source, medium, and campaign together.

Reusing campaign names: utm_campaign=launch for every product launch means you can never tell them apart in reports. Include the date or product name: launch-kanban-tool-jan-2026.

Naming Conventions That Scale

The only way to keep UTM data clean across a team (or even across your own campaigns over 12 months) is a documented naming convention. Here's the one I use:

Source: Always the platform name in lowercase. google, linkedin, twitter, newsletter, partner-name.

Medium: Use GA4's standard values only. cpc, email, social, referral, display, affiliate, video. Nothing custom unless you have a specific reason GA4 can't categorize.

Campaign: Follow the pattern type-description-date. Examples: promo-summer-desks-jun26, launch-noise-generator-jan26, nurture-onboarding-series. The type prefix (promo, launch, nurture, retarget) lets you filter campaigns by category.

Content (when used): Describe the link's position or variant. header-cta, sidebar-banner, email-button-top, image-link.

I keep a Google Sheet with columns for each parameter and a row for every tagged URL. This serves as both documentation and a deduplication check. Before creating a new campaign name, search the sheet. If someone already used a similar name, match it exactly.

Reading UTM Data in GA4

In GA4, navigate to Reports > Acquisition > Traffic acquisition. The default view shows source/medium combinations. Your UTM-tagged traffic appears here with the exact values you set. Click on a source/medium to see campaigns within it.

For deeper analysis, build a custom exploration. Go to Explore > Blank. Add dimensions: Session source, Session medium, Session campaign. Add metrics: Sessions, Engaged sessions, Conversions. Now you can see which specific campaign drove not just clicks, but actual engaged users and conversions.

The real insight comes from comparing campaigns within the same source. If your LinkedIn post got 500 clicks but 80% bounced, while your newsletter got 200 clicks with 60% converting, you know where to invest more. Without UTMs, both might show up as "direct" and you'd never know the difference.

One tip: set up a custom GA4 report that shows campaigns sorted by conversion rate, not volume. High-traffic campaigns with low conversion might not be your winners. Sometimes the 50-click campaign with 20% conversion is worth more than the 500-click campaign with 2%.

Our Free UTM Builder

I built our UTM builder because I got tired of manually typing parameters into URLs and making typos. Paste your base URL, fill in the fields, and it generates the tagged URL with one click to copy.

It does a few things other builders don't. Auto-lowercasing prevents the capitalization problem. Space detection warns you before creating broken values. A history of recently built URLs lets you reuse past campaigns without retyping. And it validates that your URL is well-formed before adding parameters.

Pair it with the meta tag checker to preview how your tagged URLs appear in social shares (UTM parameters shouldn't affect OG previews, but broken URLs sometimes do). The OG preview tool shows exactly what users see when your link gets shared. Clean URLs, proper attribution, and accurate analytics without spending 20 minutes on every link.

Frequently Asked Questions

Common questions about this topic.

What happens if I use spaces in UTM parameters?+

Spaces in UTM values get encoded as %20 or + in the URL. Google Analytics will interpret these differently from the same word without spaces, creating duplicate entries in your reports. 'spring sale' and 'spring%20sale' and 'spring+sale' appear as three separate campaigns. Always use hyphens or underscores instead of spaces.

Which UTM parameters are required?+

Technically only utm_source is required for Google Analytics to register a custom campaign. However, best practice is to always include utm_source, utm_medium, and utm_campaign together. Without all three, your traffic gets miscategorized in GA4's channel groupings, making reports unreliable.

Are UTM parameters case-sensitive in Google Analytics?+

Yes. Google Analytics treats utm_source=Facebook and utm_source=facebook as two different sources. This is the most common UTM mistake. Pick one convention (lowercase is standard) and enforce it across your team. Our builder automatically lowercases all values to prevent this issue.

Should I use UTM parameters for internal links?+

No. Never use UTM parameters on links within your own website. UTMs start a new session in Google Analytics, which means a user clicking an internal UTM-tagged link appears as a new visitor. This breaks your session data and inflates traffic numbers. Use event tracking for internal link attribution instead.

How long should UTM campaign names be?+

Keep campaign names under 50 characters. They should be descriptive enough to identify without context but short enough to scan in reports. Use a pattern like 'type-description-date' such as 'promo-summer-sale-2026' or 'launch-feature-v2-jan'. Avoid generic names like 'test' or 'campaign1' that mean nothing after a month.

Related Tools

Continue reading