What Are UTM Parameters?
UTM parameters (Urchin Tracking Module) are short text tags you append to the end of a URL. When someone clicks that tagged link, your analytics tool — whether it’s GA4, Adobe Analytics, or anything else — reads those tags and records exactly where that visitor came from, which campaign sent them, and what medium carried the click.
Without UTM tags, a click from your email newsletter and a click from an organic social post can look identical in your reports. Both show up as direct or referral traffic with no campaign context. UTM parameters fix that by giving every link a fingerprint your analytics platform can read.
Here’s what a UTM-tagged URL looks like in practice:
Everything after the ? is a query string. Each utm_ parameter is a key-value pair separated by &. The page loads the same as without the parameters — the tags are purely for your analytics platform to capture.
The Five UTM Parameters Explained
There are five standard UTM parameters. Three are essential for every tagged link. Two are optional but useful for granular analysis.
| Parameter | Purpose | Status | Example Values |
|---|---|---|---|
| utm_source | Identifies where the traffic comes from — the platform, site, or sender | Required | google, facebook, newsletter, linkedin |
| utm_medium | Identifies the marketing channel type — how the traffic arrives | Required | cpc, email, social, display, referral |
| utm_campaign | Identifies the specific campaign name, promotion, or initiative | Required | spring-sale-2026, product-launch, webinar-followup |
| utm_term | Identifies the paid keyword or targeting term (mainly for search ads) | Optional | running+shoes, analytics+tool |
| utm_content | Differentiates ad creatives or link placements within the same campaign | Optional | hero-banner, sidebar-link, variant-b |
utm_source answers “where did they come from?” — Facebook, Google, your partner’s blog, a specific newsletter. utm_medium answers “what type of channel?” — paid search (cpc), email, organic social, display advertising. utm_campaign ties the click to a specific marketing initiative you’re running.
The two optional parameters unlock deeper analysis. utm_term is primarily used for paid search keywords, though some teams repurpose it for audience targeting segments. utm_content is your best friend for A/B testing ad creatives — tag variant A and variant B with different utm_content values, and you can compare performance directly in analytics.
When You Actually Need UTM Parameters
Not every link needs UTM tags. A common mistake I see is teams tagging everything, including internal navigation links, which pollutes their data by overwriting the original traffic source mid-session.
Here’s the rule: use UTMs on links you control that point to your own site from external sources.
Tag These with UTMs
- Email campaigns and newsletters
- Organic social media posts
- Paid social ads (if platform doesn’t auto-tag)
- Partner and affiliate links
- QR codes on print materials
- SMS and push notification links
- Influencer promotion links
- Links in PDF documents or ebooks
Do NOT Tag These
- Internal site navigation links
- Links between pages on your own site
- Google Ads (use auto-tagging instead)
- Organic search results (tracked automatically)
- Direct bookmarks or typed URLs
- Links within your own app or product
Google Ads deserves a specific callout. If you have Google Ads linked to GA4, auto-tagging (via the gclid parameter) handles attribution automatically with more data than UTMs can provide. Adding manual UTMs on top of auto-tagging can actually create conflicts. Leave Google Ads to auto-tagging unless you have a specific reason to override it.
For Meta Ads, the situation is different. While Meta has its own click ID (fbclid), it doesn’t pass campaign details to GA4 the way gclid does. So UTM parameters on Meta ad URLs are essential if you want clean campaign data in Google Analytics.
How to Build UTM-Tagged URLs
You have two options: use Google’s free Campaign URL Builder or construct the URLs manually. Either way, the result is the same — a URL with query parameters appended.
If you’re building URLs manually, the format is straightforward:
https://yoursite.com/page?utm_source=SOURCE&utm_medium=MEDIUM&utm_campaign=CAMPAIGN
A few rules when constructing manually:
- The first parameter uses
?— every additional parameter uses& - If the URL already has a query string (like
?product=123), add UTMs with¬ another? - No spaces in values — use hyphens or plus signs
- UTM parameters are case-sensitive in GA4 —
Emailandemailcreate two different mediums
In my experience, the manual approach works for one-off links, but any team running more than a handful of campaigns per month needs a spreadsheet template or a dedicated UTM builder tool. I’ve seen teams with 15 variations of “facebook” as a source (Facebook, facebook, fb, FB, facebook.com) — all because people typed values freestyle. That leads directly to fragmented data you can’t trust.
UTM Naming Conventions That Scale
Naming conventions are where most UTM implementations fall apart. The parameters themselves are simple. Keeping values consistent across a team of five, ten, or fifty people over months and years — that’s the hard part.
Here’s the naming system that I’ve seen work reliably across dozens of organizations:
| Rule | Do This | Not This |
|---|---|---|
| Always lowercase | ||
| Use hyphens as separators | spring-sale-2026 | spring_sale_2026 |
| Standardize source names | fb or facebook.com | |
| Use GA4 default medium values | cpc, email, social | paid, mail, social-media |
| Include date in campaign names | webinar-feb-2026 | webinar |
| No spaces or special characters | product-launch | product launch! |
| Keep values concise but descriptive | hero-cta | the-main-button-at-the-top |
Why use GA4’s default medium values? GA4 maps utm_medium values to its default channel groupings — Paid Search, Email, Organic Social, Display, etc. If you use cpc as your medium for paid search, GA4 automatically sorts that traffic into “Paid Search.” If you use a custom value like paid-search, it lands in “Unassigned” and you lose the clean channel-level reporting.
The standard mediums that GA4 recognizes include:
- cpc — Paid Search
- email — Email
- social — Organic Social
- paid-social / paidsocial — Paid Social
- display — Display
- affiliate — Affiliates
- referral — Referral
- video — Video
- audio — Audio
Create a shared document — a Google Sheet works fine — where every approved source, medium, and campaign name is listed. New campaigns get added before links are built. This is the single highest-impact thing you can do for UTM data quality.
How UTM Data Appears in GA4
Once your tagged URLs are live and people are clicking them, the data flows into GA4 automatically. You don’t need any additional event tracking setup — GA4 reads UTM parameters from the landing page URL and attaches them to the session.
Where to Find UTM Data in GA4
- Session source — maps to
utm_source - Session medium — maps to
utm_medium - Session campaign — maps to
utm_campaign - Session manual term — maps to
utm_term - Session manual ad content — maps to
utm_content
GA4 uses the session source/medium dimensions for attribution by default. You can view these in the Traffic Acquisition report, where you’ll see rows like newsletter / email, facebook / paid-social, or linkedin / social.
For deeper analysis, use the Explorations section. Build a free-form report with dimensions like Session campaign and Session manual ad content alongside metrics like conversions and engagement rate. This is where UTM tagging really pays off — you can compare individual campaigns, ad variants, and content placements side by side.
Understanding how UTMs feed into attribution models matters too. GA4’s data-driven attribution uses the source/medium values captured from your UTMs to distribute credit across touchpoints. Messy UTM data means messy attribution — which leads to bad budget decisions.
Common UTM Mistakes (and How to Fix Them)
After auditing UTM implementations for dozens of clients, these are the mistakes that come up again and again:
Email, email, and EMAIL are three different mediums in GA4. Your “email” channel data gets split across multiple rows, making reports unreliable. Always use lowercase.
gclid data. GA4 may attribute the session incorrectly. Let auto-tagging handle Google Ads attribution.
fb, Facebook, facebook.com, and meta all meaning the same source. Create and enforce a naming guide.
test, campaign1, or promo are meaningless three months later. Include the initiative, audience, and date: spring-sale-retargeting-feb-2026.
What I’ve seen work best is running a quarterly UTM audit. Pull your session source/medium report from GA4, sort by sessions, and look for near-duplicates. If you see both facebook / social and facebook / organic-social, that’s a naming convention leak you need to fix at the source — your UTM spreadsheet and the people building campaign links.
If you’re using Google Tag Manager to manage your tracking, consider creating a custom HTML tag that captures UTM parameters on landing and stores them in a cookie or localStorage. This helps preserve UTM data across redirects or single-page app navigations where the query string might get stripped.
Frequently Asked Questions
Do UTM parameters affect SEO or page rankings?
No. Google treats URLs with UTM parameters as the same page for ranking purposes. However, it’s still good practice to use canonical tags on your pages to prevent any edge-case indexing of UTM-tagged URLs. Search engines are smart about this, but clean canonicalization is basic hygiene.
Should I use UTM parameters on Google Ads campaigns?
Generally, no. Google Ads auto-tagging (gclid) sends richer data to GA4 than manual UTMs can, including ad group, keyword, and match type details. Use auto-tagging by default and only add manual UTMs if you specifically need the data in a non-Google analytics platform.
How many UTM parameters can I add to a single URL?
You can use all five standard parameters on one URL. There’s no technical limit, though most URLs work with three (source, medium, campaign) plus one or two optional ones. Keep URLs as short as practical — very long URLs can get truncated in some email clients or social platforms.
Are UTM parameters case-sensitive?
Yes, in GA4 and most analytics platforms. utm_source=Facebook and utm_source=facebook will appear as separate sources in your reports. Always use lowercase to avoid fragmenting your data across multiple entries for the same channel.
Can I use UTM parameters with Meta (Facebook) Ads?
Yes, and you should. Unlike Google Ads, Meta’s click ID (fbclid) doesn’t automatically pass campaign details to GA4. Add UTMs to your Meta ad destination URLs using their dynamic parameters — {{campaign.name}}, {{adset.name}}, and {{ad.name}} — to get clean campaign data in GA4.
Start Tagging Your Campaigns Today
UTM parameters are one of the simplest and most impactful things you can implement for marketing measurement. They cost nothing, take minutes to set up, and fundamentally change the quality of your campaign data.
Here’s your action plan: create a naming convention document, build your first set of tagged URLs using the Campaign URL Builder, and check your GA4 Traffic Acquisition report after a few days to verify the data is flowing correctly.
If your tracking foundation is already solid, explore how UTM data feeds into attribution models to understand the full customer journey. And if you’re still setting up your analytics stack, start with the GA4 event tracking guide to make sure your measurement baseline is in place before layering on campaign tracking.
For more on measuring what matters across your marketing channels, check out our guides on SEO KPIs and reporting and the full tracking setup category for implementation walkthroughs.