Skip to content
accs-net.com

Press Esc to close

UTM

UTM parameters are short tags appended to a URL β€” utm_source, utm_medium, utm_campaign, utm_content, and utm_term β€” that tell GA4 exactly where a click came from. Without them, paid, email, and partner traffic gets misclassified into Direct or generic Referral. This guide covers the five standard parameters, how Google Analytics 4 reads them, tagging conventions that survive across teams, common mistakes that pollute reports, the privacy trade-off of long URLs, the source-attribution hierarchy (UTM vs gclid vs Referer), and a FAQ answering the questions analysts actually get asked.

What Are UTM Parameters?

UTM parameters β€” the acronym is short for Urchin Tracking Module, after the analytics product Google acquired in 2005 β€” are key/value pairs appended to a destination URL after a question mark. When a visitor clicks the tagged link, the analytics platform reads those values from the URL and stores them with the session, making the traffic self-identifying.

A tagged link looks like this:

https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=spring2026

UTMs are platform-agnostic. They work in GA4, Plausible, Matomo, Adobe Analytics, Fathom, and any tool that reads URL query strings. They’re also human-readable, which makes them useful for QA β€” you can paste a tagged URL into the address bar and immediately see what attribution it should generate.

UTM URL anatomy: utm_source=newsletter, utm_medium=email, utm_campaign=spring2026, utm_content=cta_button, utm_term=ga4_basics β€” each parameter highlighted with role label and GA4 dimension mapping
Each UTM parameter populates a specific GA4 dimension β€” partial tagging breaks attribution

The Five Standard UTM Parameters

GA4 (and every analytics tool that follows the Urchin convention) recognises exactly five UTM keys. Three are required for clean attribution; two are optional and only useful in specific scenarios.

Parameter Required What it holds Example value GA4 dimension
utm_source Yes Who sent the click β€” the publisher, vendor, or platform newsletter, facebook, partner_blog Session source
utm_medium Yes The channel or tactic type email, cpc, display, social Session medium
utm_campaign Yes The marketing initiative the link belongs to spring2026, black_friday, launch_q4 Session campaign
utm_content No Creative variant or placement (A/B testing) cta_button, banner_300, v2 Session manual ad content
utm_term No Keyword or audience label (legacy use) brand, retargeting Session manual term

The required trio answers the three questions every acquisition report needs: who (source), how (medium), why (campaign). Drop any one and GA4 will fall back to whatever it can infer from the Referer header β€” usually wrong for paid and email traffic.

How GA4 Reads UTM Parameters

When a tagged URL loads, the GA4 tag captures the query string, parses out the utm_* keys, and writes their values onto the session_start event. From there, GA4 stores them as session-scoped dimensions:

  • utm_source β†’ session_source
  • utm_medium β†’ session_medium
  • utm_campaign β†’ session_campaign
  • utm_content β†’ session_manual_ad_content
  • utm_term β†’ session_manual_term

GA4 then runs session_source / session_medium through its Default Channel Group rules to bucket the visit into Email, Paid Search, Organic Social, Referral, and so on. The medium value drives that classification β€” utm_medium=email always becomes the Email channel, cpc always becomes Paid Search, and so on.

GA4 UTM hierarchy flow: tagged URL with utm_source utm_medium utm_campaign utm_content feeds session dimensions, which then feed Default Channel Group classification and Acquisition reports
How UTMs flow from the URL into GA4 dimensions and then into Acquisition reports

Two attribution scopes matter: session (last non-direct touch on this visit) and user (first-touch acquisition). Both read the same UTM values but apply different time-window rules. For per-session analysis use Traffic Acquisition; for understanding which channels discover new users use User Acquisition.

UTM Tagging Best Practices and Conventions

The single biggest cause of broken UTM reports isn’t missing tags β€” it’s inconsistent tags. Email, email, e-mail, and EMAIL generate four separate rows in GA4. A naming convention fixes that before it starts:

  1. Lowercase only. GA4 treats UTM values as case-sensitive. Pick lowercase as your standard and stick to it across every team and tool.
  2. No spaces. Use underscores (spring_sale) or hyphens (spring-sale). Pick one separator and apply it consistently β€” mixing them creates the same fragmentation as inconsistent case.
  3. Use the standard mediums verbatim. email, cpc, social, display, affiliate, referral. These map directly to GA4’s Default Channel Group; custom mediums like e-mail-blast end up in “Unassigned”.
  4. Maintain a tag dictionary. A shared spreadsheet listing approved source and campaign values for the year. Anyone building a link checks the dictionary first.
  5. Build links through a tool, not by hand. Google’s Campaign URL Builder or our own UTM Builder enforces the convention and prevents typos.
  6. Tag every external promo. Ads, partner posts, sponsored content, emails, QR codes, podcast show notes, in-app links from your mobile app to your web property.
  7. Never tag internal navigation. A UTM on an internal link starts a new session and overwrites the original acquisition data. This is the most common self-inflicted attribution wound in GA4.

For a deep dive into running this discipline at scale across 50+ campaigns per quarter, our pillar guide on UTM parameters that actually track walks through dictionary structure, naming conventions, and team rollout.

Building UTM URLs Manually vs With Tools

You can construct a UTM URL three ways:

  • By hand β€” fast for one-off tests, error-prone for production. Typos are invisible until they show up as duplicate rows three weeks later.
  • Spreadsheet template β€” one row per link, columns for each UTM parameter, a CONCATENATE formula that builds the final URL. Decent for small teams; scales poorly past a few hundred links.
  • Builder tool β€” a form that validates inputs, enforces lowercase, and outputs a copy-paste-ready URL. Examples include Google’s Campaign URL Builder, utmbuilder.net, and our own UTM Builder.

For high-volume programs, layer in a URL-shortener (Bitly, Rebrandly) so the long tagged URL becomes a clean branded short link in customer-facing creative β€” the UTMs still resolve when the redirect fires.

Common UTM Mistakes

Most “UTM problems” trace back to one of these patterns:

  • Case-sensitivity drift. Facebook and facebook are two different sources. Lowercase everything, always.
  • Tagging internal links. Adding ?utm_source=homepage&utm_medium=internal to a button on your own site forces a new session and erases the visitor’s actual acquisition. Internal links should never carry UTMs.
  • Double-tagging via redirects. A short link that redirects to an already-tagged URL can cause the second set of UTMs to overwrite or merge unpredictably. Tag once, at the final destination.
  • Parameter pollution. Stuffing PII (email, phone) or session IDs into utm_content creates millions of unique values, blows out reports, and risks GDPR violations.
  • Inconsistent mediums. email on Monday’s send, e-mail on Tuesday’s, newsletter on Wednesday’s. Three reports where one should exist.
  • Missing the required trio. Only tagging utm_source and skipping utm_medium means GA4 can’t bucket the channel β€” it falls into “(not set)” or generic referral.
  • Tagging organic search. Don’t add UTMs to your own SERP listings or canonical links. GA4’s organic detection works fine without them, and UTMs override the natural attribution.

UTMs are visible. They sit in the URL bar, in browser history, in shared bookmarks, and in any logs that capture the full request line. That’s a privacy-conscious surface to design carefully:

  • Never put PII in UTMs. No email addresses, customer IDs, names, or phone numbers. They’re visible to the user and to anyone they share the link with.
  • Avoid session-uniqueness. Don’t generate per-user UTM values. Beyond the privacy concern, it explodes cardinality in GA4 and makes reports unusable.
  • Use a URL shortener for customer-facing creative. Long UTM-heavy URLs look spammy in social posts and email previews. A branded short link (yourdomain.link/promo) hides the parameters until the click resolves.
  • Strip UTMs server-side after capture. Many sites use a 301 or JavaScript replaceState to remove UTMs from the address bar after GA4 records them β€” keeps shared URLs clean and prevents accidental re-tagging if a visitor copies the URL.

UTM vs gclid vs Referer β€” Source Attribution Hierarchy

GA4 has three signals it can use to attribute a visit. They run in a strict priority order, and earlier signals override later ones:

  1. UTM parameters or click identifiers (gclid for Google Ads, fbclid for Facebook, msclkid for Microsoft Ads). If any of these are in the URL, GA4 uses them and ignores everything else.
  2. Referer header. If no UTM/click-id, GA4 reads the browser’s Referer to identify the previous domain. This drives Organic Search detection (Google, Bing, etc.), Organic Social detection, and the referral traffic fallback.
  3. Direct. If the URL has no UTM and no Referer, GA4 classifies the visit as direct traffic β€” typed URL, bookmark, app open, or stripped Referer.

This hierarchy is why any UTM tag wins over Referer. If a partner blog tags its outbound links with ?utm_medium=email, GA4 treats those clicks as Email even though the Referer says blog.com. The medium is whatever the link tells it to be.

For a deeper look at when each channel applies, see our guides on source, medium, campaign, referral traffic, direct traffic, and affiliate.

Frequently Asked Questions

What does UTM stand for?

UTM is short for Urchin Tracking Module, named after Urchin Software β€” the analytics product Google acquired in 2005, which became the foundation of Google Analytics. The convention stuck even though the original product is long retired.

What UTM parameters should I use?

Always use the required trio: utm_source, utm_medium, utm_campaign. Add utm_content only when you’re A/B testing creative variants or distinguishing placements. Skip utm_term in modern GA4 setups β€” it’s a legacy field from paid-search keyword tracking that gclid handles automatically now.

Do I need UTMs for organic traffic?

No. Don’t tag your own canonical URLs or SERP listings. GA4 detects organic search via the Referer header against a maintained list of search engines β€” adding UTMs would overwrite that detection with whatever values you put in. Same applies to organic social and direct traffic.

What’s the difference between utm_source and utm_medium?

utm_source identifies who sent the click β€” the specific publisher, vendor, or platform (e.g., newsletter, facebook, partner_blog). utm_medium identifies the channel category β€” the type of marketing tactic (e.g., email, cpc, social). Source is granular; medium is the bucket. GA4 maps medium to its Default Channel Group, so use the standard medium values verbatim.

What’s the difference between utm_content and utm_term?

utm_content distinguishes creative variants or placements within the same campaign β€” A/B test cells, banner sizes, CTA button vs hero image. utm_term originally held paid-search keywords; today’s Google Ads gclid handles keyword attribution automatically, so utm_term is rarely used. If you need to label audiences (e.g., retargeting vs prospecting), utm_term still works.

Are UTM parameters case-sensitive in GA4?

Yes. Email, email, and EMAIL appear as three separate rows in GA4 reports. Standardise on lowercase across every team and tool β€” this is the single most impactful tagging discipline you can adopt.

Can I add UTMs to internal links?

No. UTMs on internal navigation start a new session in GA4 and overwrite the visitor’s original acquisition data β€” turning a Paid Search visitor into an Internal one. Tag external links only.

Bottom Line

UTM parameters are the single most reliable way to make external campaign traffic self-identifying in GA4 and every other analytics tool. Tag every external promo with the required trio (utm_source, utm_medium, utm_campaign), enforce a lowercase naming convention through a builder tool, never tag internal links, and respect the source-attribution hierarchy where UTMs win over Referer. Get those four habits right and your acquisition reports will tell you the truth.

Tom Martin
Written by

Tom Martin

Web analytics specialist with deep expertise in Google Analytics, Tag Manager, and e-commerce tracking. Helping businesses understand their data without the noise β€” practical guides, honest reviews, and real-world implementation experience.