Open almost any analytics account and you'll find the same mess: traffic from "facebook", "Facebook", "fb", and "facebook.com" counted as four different sources; a campaign called "spring_sale" beside one called "Spring Sale 2026"; and a large pile of revenue labelled "(not set)" or "direct" that nobody can explain. That mess is why so many teams can't say which campaigns actually drive revenue.
UTM parameters are the fix, and they're simple. The hard part isn't the syntax — it's consistency. This guide covers what each parameter means, a naming convention that stays clean, and the mistakes that quietly ruin attribution.
The short answer
- UTM parameters are tags added to a link's URL that tell your analytics where a visit came from.
- The core three are
utm_source,utm_medium, andutm_campaign. Use all three on every tagged link. - Use lowercase, one naming convention, and a shared list of allowed values. Consistency matters more than the specific names you pick.
- Never tag internal links on your own site.
- Tag every link you control that leads to your site: emails, social posts, ads, partner links, QR codes.
What UTM parameters are
A UTM-tagged link looks like this:
https://example.com/pricing?utm_source=linkedin&utm_medium=social&utm_campaign=2026-q3-launch
Everything after the question mark is ignored by the page itself but read by your analytics tool, which records the visit — and any sign-up or purchase that follows — against those values.
The parameters
| Parameter | What it answers | Example values |
|---|---|---|
utm_source | Where did the visit come from? The specific site, platform, or sender. | linkedin, google, newsletter, partner-acme |
utm_medium | What type of channel was it? | social, cpc, email, referral, display |
utm_campaign | Which campaign or initiative? | 2026-q3-launch, black-friday, webinar-onboarding |
utm_content | Which specific ad, link, or creative? | hero-button, video-a, footer-link |
utm_term | Which keyword? Mostly for paid search. | project-management-software |
utm_id | A campaign ID, useful for matching cost data | q3-2026-001 |
Google Analytics 4 also recognizes utm_source_platform, utm_creative_format, and utm_marketing_tactic for more detailed reporting, but most teams get full value from the first five.
Source versus medium
This is where most confusion starts. Source is the specific origin (LinkedIn, your newsletter, a partner). Medium is the category of channel (social, email, referral). A LinkedIn post and a LinkedIn ad share a source but have different mediums — social for the organic post, cpc or paid-social for the ad.
Getting medium right matters because analytics tools group traffic into channels partly based on it. In Google Analytics 4, for example, the default channel grouping looks for recognizable medium values such as email, cpc, social, and referral. Invent your own values and your traffic can end up in "Unassigned".
Build a naming convention
Pick rules once, write them down, and share them with everyone who creates links — including agencies and partners.
- Lowercase everything. Many analytics tools treat
Emailandemailas different values. - Choose one separator — hyphens are common — and never use spaces.
- Keep a fixed list of allowed mediums. For example:
email,social,paid-social,cpc,display,referral,affiliate,qr. Don't add new ones casually. - Keep a standard list of sources for recurring channels:
linkedin,facebook,instagram,x,youtube,newsletter. - Give campaigns a consistent format, such as date-first so they sort naturally:
2026-09-product-launch. - Use
utm_contentto tell variants apart instead of creating separate campaigns for each ad or button.
A simple shared spreadsheet or link builder that enforces these lists prevents most problems before they happen.
Examples
Newsletter link:
?utm_source=newsletter&utm_medium=email&utm_campaign=2026-09-product-update&utm_content=main-cta
Organic LinkedIn post:
?utm_source=linkedin&utm_medium=social&utm_campaign=2026-09-product-launch
Paid LinkedIn ad, variant B:
?utm_source=linkedin&utm_medium=paid-social&utm_campaign=2026-09-product-launch&utm_content=ad-b
Partner referral:
?utm_source=partner-acme&utm_medium=referral&utm_campaign=2026-integration-launch
QR code on a printed flyer:
?utm_source=event-flyer&utm_medium=qr&utm_campaign=2026-10-trade-show
Common mistakes
- Tagging internal links. A UTM link from your own homepage to your pricing page can overwrite the visitor's real source, so a visit that came from a paid ad gets credited to your own site. Only tag links that bring people to your site from elsewhere.
- Inconsistent capitalization — the single most common source of fragmented reports.
- Missing medium or source. A link with only
utm_campaignis hard to attribute properly. Always use the core three. - Putting personal data in parameters. Never include email addresses, names, or other personal information in UTM values. URLs end up in logs, browser histories, and analytics tools, and many analytics providers prohibit sending personal data.
- Tagging links your ad platform already tracks. Google Ads, for instance, can use auto-tagging; if you add manual UTMs too, make sure they don't conflict with how you've configured it.
- Forgetting shortened links. If you use a link shortener, add the UTMs to the destination before shortening.
Connect UTMs to revenue
UTMs become truly valuable when they reach the point of sale. When a visitor signs up or buys, store the campaign values that brought them — then your revenue reports can say which campaign produced which customers, not just which produced clicks.
That's the foundation of attribution. Our guide to marketing attribution covers how to go from tagged visits to a defensible view of marketing ROI, including multi-touch models that credit more than just the last click.
Audit your tracking regularly
Once a quarter, review your analytics for:
- Sources and mediums that are near-duplicates of each other
- Traffic landing in "Unassigned" or "(not set)"
- Campaign names that don't follow the convention
Fix the link templates that caused them, not just the report. The goal is data you can trust without cleaning it first.
How Twin-Marketing helps
Twin-Marketing adds consistent UTM tags automatically to the links it publishes — social posts, email campaigns, journeys, and ad landing pages — so every channel follows the same convention without anyone building links by hand. Revenue from connected Stripe or Shopify accounts is matched back to campaigns by their UTM values, which is how the ROI dashboard can show revenue and return on ad spend per campaign rather than per click.
Clean UTMs aren't glamorous. They're what lets you answer, with confidence, "which of our marketing is actually working?" — see also email marketing campaigns that convert.
Sources and further reading
On this blog
- Marketing Attribution: How to Finally Prove Marketing ROI
- Email Marketing in 2026: Campaigns That Actually Convert
- A Social Media Strategy That Actually Compounds
External sources
- URL builders: collect campaign data with custom URLs — Google Analytics Help
- Traffic-source dimensions, manual tagging, and auto-tagging — Google Analytics Help
Frequently asked questions
What is the difference between utm_source and utm_medium?
utm_source is the specific origin of the visit, such as linkedin or your newsletter. utm_medium is the type of channel, such as social, email, or cpc. An organic LinkedIn post and a LinkedIn ad share a source but have different mediums.
Should I use UTM parameters on internal links?
No. Tagging links between pages on your own site can overwrite the visitor's original source, so a visit from an ad gets credited to your own website. Only tag links that bring people to your site from elsewhere.
Are UTM parameters case-sensitive?
In many analytics tools, yes — Email and email can be recorded as different values. Use lowercase for everything and a shared list of allowed values to keep reports clean.
Put this playbook to work
Twin-Marketing runs your brand strategy, content, SEO, social, and ads with a coordinated team of 25 AI agents — all in your brand voice.
Get started with Twin-Marketing →