UTM Parameters: The Complete Guide (And Why They're Named After a Sea Creature)
A no-BS guide to UTM tracking — what the parameters actually mean, the naming convention mistakes that silently destroy your attribution data, and how to build a system your whole team won't break.
UTM parameters are short tags appended to a URL that tell your analytics platform where a visitor came from, what campaign brought them, and which specific link they clicked. They don't change what the user sees — they're invisible to everyone except your analytics tool. A UTM-tagged URL looks like this:
https://marketertools.fyi/?utm_source=newsletter&utm_medium=email&utm_campaign=june-launch
Without UTMs, every click from that email would show up in Google Analytics as "direct" — meaning you'd have no idea the campaign worked. Or worse, GA4 would credit Google search for a conversion that actually came from your email, and you'd keep cutting email budget while pumping money into paid.
That's the business case in two sentences. Now let's get into the real stuff.
Why "UTM"? The Surprisingly Interesting Origin Story
The term "UTM" stands for Urchin Tracking Module — named after Urchin Software Corporation, a San Diego-based web analytics company that Google acquired in April 2005 for a reported $30 million.
Urchin's tracking system used these URL parameters to pass campaign data into their analytics product. When Google rebuilt Urchin into Google Analytics, they kept the parameter naming convention. The sea creature became a permanent fixture of the internet.
Here's the irony: the company was named after sea urchins because the founders thought urchins, despite their spiny and off-putting exterior, are secretly elegant creatures. Campaign tracking parameters are kind of the same — ugly URLs hiding a surprisingly elegant attribution system.
The 5 UTM Parameters, Explained Without Jargon
There are five standard UTM parameters. Three are required, two are optional.
| Parameter | Required? | Purpose | Example |
|---|---|---|---|
utm_source | Yes | Where the traffic originates | google, newsletter, twitter |
utm_medium | Yes | The channel type | cpc, email, social, organic |
utm_campaign | Yes | The campaign name | summer-sale, brand-awareness-q3 |
utm_content | No | Differentiates links within the same ad/email | hero-cta, footer-link, banner-a |
utm_term | No | The paid search keyword that triggered the ad | utm+builder+free, campaign+tracking |
The required three (source, medium, campaign) are the minimum viable set for meaningful attribution. The optional two (content, term) unlock the next level — A/B testing creative elements and keyword-level bid optimisation.
Think of it like a postal address. utm_source is the city, utm_medium is the street, utm_campaign is the building. Without all three, the package is lost.
The Capitalization Trap (How Teams Silently Break Their Own Data)
This is the most common error in UTM implementation, and it's almost never caught until someone pulls a report and notices their numbers don't add up.
Google Analytics 4 treats UTM values as case-sensitive strings. That means:
utm_source=Googleandutm_source=googleappear as two separate sources in your reportsutm_campaign=Summer_Saleandutm_campaign=summer_saleare counted as different campaignsutm_medium=Emailandutm_medium=emailwill split your email traffic in half
In practice, this happens when multiple people or agencies are building UTMs without a shared convention. One team member types Google, another types google. Six months later, you're looking at a report that shows Google drove 8,000 sessions when it actually drove 14,000 — half of your data is hiding under Google with a capital G.
The fix is boring but non-negotiable: lowercase everything, always. No exceptions. Build it into your UTM builder template so the field auto-lowercases input before generating the URL.
The Naming Convention Problem Nobody Talks About
Capitalization is the obvious mistake. The less obvious one is inconsistent naming conventions across campaigns.
Consider a company running LinkedIn ads. Over the course of a year, their UTM sources might include:
linkedinLinkedInlinked_inlinkedin-adsliLI
All of these appear as separate traffic sources in GA4. When the CMO asks "how much did LinkedIn drive last quarter?" the answer is: you genuinely can't tell without manually aggregating six different rows.
The solution is a UTM naming taxonomy — a shared document that defines the exact values your team uses for each parameter. It doesn't need to be complicated. A simple table works:
| Channel | utm_source | utm_medium | Notes |
|---|---|---|---|
| Google Search Ads | google | cpc | |
| Google Display | google | display | |
| Meta (Facebook/Instagram) | meta | paid-social | |
| LinkedIn Ads | linkedin | paid-social | |
| Company Newsletter | internal-newsletter | email | |
| Partner Newsletter | [partner-name] | email | Use partner's name |
| Organic Social | [platform] | social | e.g. twitter, instagram |
The specifics don't matter as much as consistency. Pick your convention once, write it down, and enforce it ruthlessly.
What Happens When You Don't Tag Links (A Real Attribution Horror Story)
In 2019, a DTC skincare brand was running a mix of channels: Facebook ads, influencer campaigns, a monthly email, and some affiliate partnerships. Their month-over-month "direct" traffic kept growing, which their CEO interpreted as brand strength — people were just typing the URL directly into the browser.
Their performance marketing team started cutting email and influencer budgets to fund more Facebook ads because "direct" wasn't attributable to anything that cost money, so Facebook was showing the best incremental ROI.
Six months later, they hired a new analytics consultant who noticed something odd: their "direct" traffic spiked every time an email went out, and correlated almost perfectly with influencer post dates. The influencers were using link-shorteners that stripped UTM parameters. The email team had been sending un-tagged links for nine months.
They'd been defunding two of their most effective channels to double down on Facebook, based entirely on misattributed data. The influencer campaigns had a 3.2x ROAS that was being credited to "direct" because nobody built UTMs into the influencer brief.
The fix cost nothing. The lesson cost six months of budget and some significant relationship repair with influencer partners they'd quietly cut.
When NOT to Use UTMs
UTMs solve attribution for inbound traffic. But there are two scenarios where they actively cause problems:
1. Internal links. Never put UTMs on links that go from one page to another on your own site. If a user lands on your homepage from a newsletter (with correct UTMs), then clicks an internal link to a product page (which also has UTMs), GA4 will start a new session and credit the product page visit to the internal link — wiping out the newsletter attribution. Your session data becomes garbage.
2. Google Ads auto-tagging conflicts. Google Ads has its own tagging system called gclid (Google Click Identifier) that it appends automatically. If you manually add utm_source=google&utm_medium=cpc on top of gclid, you can create conflicts in GA4 that corrupt your Search vs Other Google data. Use Google Ads auto-tagging for Google Ads traffic, and save manual UTMs for everything else.
GA4-Specific Considerations for 2025
GA4 handles UTMs differently from Universal Analytics in a few ways worth knowing:
Session vs event scope. In UA, UTM parameters were session-scoped — they applied to the whole session. In GA4, they're event-scoped by default. This means the first event in a session carries the UTM data, but if a user navigates around, subsequent events may not have the same attribution. This is mostly handled correctly by the GA4 tag, but it's worth knowing when you're building custom event tracking.
The "direct" misattribution window. GA4 uses a 30-minute session timeout. If a user clicks your UTM-tagged link, leaves to check something, and comes back within 30 minutes via a new browser tab (direct), GA4 may attribute the session to the UTM. This inflates campaign numbers slightly. It's a known limitation, not a bug you need to fix.
utm_id parameter. GA4 added support for a sixth parameter, utm_id, which maps to a campaign ID in your CRM or ad platform. Useful if you're doing advanced cross-channel attribution or connecting GA4 data to BigQuery.
The Practical Checklist Before Every Campaign
Before any campaign goes live, run through this:
- All URLs use lowercase — no mixed case in any parameter value
- Spaces replaced with hyphens or underscores (spaces become
%20in URLs and break consistency) - Internal links are untagged — no UTMs on links within your own site
- Partner and influencer URLs are tagged — UTMs are in the brief, not just your own ads
- Landing pages are live — test the full URL before launch; 404 pages also report UTM data
- GA4 is receiving data — use GA4's DebugView to confirm UTM parameters are being captured correctly on the first tagged session
Use the free UTM builder on MarketerTools to generate consistent, lowercase, properly-encoded UTM URLs in seconds — and share the generated URLs with your team rather than having everyone build their own.
FAQ
What is a UTM parameter?
A UTM parameter is a snippet of text added to the end of a URL that tells your analytics tool where a visitor came from. The five standard parameters are utm_source, utm_medium, utm_campaign, utm_content, and utm_term. They were developed by Urchin Software (acquired by Google in 2005) and are now the universal standard for campaign tracking across all major analytics platforms.
Do UTM parameters affect SEO? No. UTM parameters are ignored by Google's indexing system. However, if you accidentally get UTM-tagged URLs indexed (e.g., a campaign URL is linked publicly), it can cause duplicate content issues. Use canonical tags on all landing pages pointing to the clean URL without UTM parameters.
Why does my UTM traffic show as "direct" in GA4? The most common causes: (1) the UTM link goes through a redirect that strips the parameters, (2) the user opened the link in a mobile app that doesn't pass referrer data, (3) an HTTPS-to-HTTP redirect dropped the parameters, or (4) a link shortener was used that doesn't preserve UTMs. Test your links end-to-end using GA4 DebugView before launching any campaign.
What is the difference between utm_source and utm_medium?
utm_source identifies who sent the traffic (e.g., google, facebook, newsletter-june). utm_medium identifies the type of channel (e.g., cpc, email, organic). Think of source as the publication and medium as the format. The same source can have multiple mediums — Google can send you cpc, display, or organic traffic.
Should I use UTMs on organic social posts? Yes. Without UTMs on social posts, all that traffic lands in GA4 as either "social" (if the referrer is correctly passed) or "direct" (if not). With UTMs, you can distinguish between Instagram Stories traffic, LinkedIn post traffic, and Twitter/X link traffic — which matters if you're evaluating content performance across platforms.
How long do UTM parameters stay active in GA4? GA4 sessions time out after 30 minutes of inactivity (or at midnight). After a session ends, UTM attribution for that user resets unless you're using cross-channel attribution models in GA4. For user-lifetime attribution (how did this user first find us?), look at the "First user source/medium" dimension rather than the session-level source/medium.
MarketerTools
Marketing Practitioners
Written by the MarketerTools team — practitioners who build and use tools for marketers every day.
Put this into practice
Use the free tools on MarketerTools to apply what you just read.
Browse all tools →