What Are UTM Parameters? A Plain-English Guide With Examples
If you have ever wondered what the ?utm_source=... part of a link does, this is the guide. What each of the five parameters means, how GA4 reads them, the mistakes that ruin reports, and how to build a tagged link in under a minute.
In short
UTM parameters are short tags appended to a URL, such as ?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale, that tell Google Analytics and other tools where a visitor came from. There are five: utm_source (the platform), utm_medium (the channel type), utm_campaign (the campaign name), utm_term (the keyword or audience), and utm_content (the specific ad or link). They work on any site without code changes.
Every marketer has seen a link that looks like example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=spring-sale. The part after the question mark is a set of UTM parameters, and it is the oldest, simplest, and still most widely used way to tell an analytics tool which campaign sent a visitor. This guide explains what each parameter means, how Google Analytics 4 turns them into reports, and the handful of rules that separate clean campaign data from a source report full of duplicates.
What UTM parameters actually do
A browser does not tell a website which email, ad, or social post a visitor clicked. It passes a referrer at best, and often not even that. UTM parameters solve this by putting the campaign information directly into the URL. When the page loads, the analytics script reads the parameters, records them against the session, and drops them from the reports you see as Source, Medium, and Campaign. Nothing about the page itself changes; the parameters are ignored by your server and only read by the tracking script.
Because the information travels inside the link, UTMs work everywhere a link works: email, SMS, QR codes, print, podcasts, partner sites, and paid ads on networks that do not have their own tagging. That universality is why they have outlived every attempt to replace them.
The five parameters, with examples
| Parameter | What it answers | Example values | Required? |
|---|---|---|---|
| utm_source | Which platform or site sent the visit | google, facebook, newsletter, linkedin, partner-acme | Yes |
| utm_medium | What type of channel it was | cpc, email, paid-social, social, referral, affiliate | Yes (in practice) |
| utm_campaign | Which campaign, promotion, or send | spring-sale-2026, product-launch, weekly-digest-42 | Yes (in practice) |
| utm_term | Which keyword or audience | running-shoes, lookalike-purchasers, {keyword} | Optional |
| utm_content | Which ad, creative, or link position | hero-cta, footer-link, video-a, carousel-2 | Optional |
Put together, a fully tagged link for a Meta ad promoting a spring sale might read: example.com/sale?utm_source=facebook&utm_medium=paid-social&utm_campaign=spring-sale-2026&utm_content=video-a. In GA4 that visit appears as source facebook, medium paid-social, campaign spring-sale-2026, and lands in the Paid Social channel automatically because paid-social is one of the medium values GA4 recognizes.
GA4 also reads a few newer parameters: utm_id (a campaign ID for joining to cost data), utm_source_platform (the platform you bought the ad through, such as Google Ads or DV360), utm_creative_format, and utm_marketing_tactic. They are useful for larger paid programmes but optional for everyone else.
Source versus medium: the distinction people get wrong
The most common confusion is between utm_source and utm_medium. The source is the specific place the link lived: google, facebook, the name of your newsletter, a partner's domain. The medium is the kind of channel: cpc for paid search, email, paid-social, social for organic posts, referral for a link on another site. A paid Facebook ad is facebook / paid-social. An organic post on the same network is facebook / social. The source is the same, and the medium is what tells GA4 one was paid and one was not.
GA4 uses medium (and sometimes source) to assign the default channel group, so a medium value it does not recognize lands in Unassigned. Sticking to the recognized set (cpc, email, paid-social, social, referral, affiliate, display, video) means your channel report fills itself in without custom rules. The full list is in Google's default channel group documentation, and our UTM naming convention template turns it into a closed list your team can copy.
How to build a UTM link
- 1Start with the final destination URL, including https:// and the full path. Check that the page does not redirect; redirects sometimes strip parameters.
- 2Decide the source and medium from your allowed list. If the value is not on the list, add it to the list first rather than improvising.
- 3Name the campaign using a pattern: what it is, who it targets, and when. spring-sale-us-2026 beats SpringSale.
- 4Add utm_term or utm_content only if you will actually compare keywords or creatives against each other. Empty parameters add noise.
- 5Generate the link with a builder rather than by hand. Our free UTM builder encodes special characters, lints casing and spaces, and saves presets for each channel so the next link is one click.
- 6Paste the final link into a browser and confirm the page loads and the parameters survive. Then ship it.
Where UTMs show up in Google Analytics 4
In GA4, go to Reports, then Acquisition, then Traffic acquisition. The default dimension is Session default channel group; switch it to Session source / medium or Session campaign to see your tags. Because GA4 stores campaign data on the session and the user, you can also see the first campaign that brought a user in (User acquisition report) separately from the campaign that started a given session. For a real-time check after launching, open the Realtime report and look at the source and medium cards while you click your own link.
GA4 is not the only consumer. Any attribution tool, CRM, or first-party tracker that reads the landing URL can store the same parameters, which is how campaign data ends up attached to leads and revenue downstream. If that is where you are heading, see connecting campaigns to leads and revenue.
Mistakes that quietly ruin UTM reports
- Inconsistent casing and spelling. Facebook, facebook, and fb become three rows that never add up. Lowercase everything and use presets.
- Spaces and special characters. A space becomes %20, an ampersand breaks the whole query string. Use hyphens between words and let a builder encode the rest.
- Tagging internal links. A UTM click within your own site starts a new session and overwrites the real source. Keep UTMs for inbound traffic only.
- Putting everything in utm_campaign. facebook-spring-sale-video is three fields crammed into one. You will never be able to compare the spring sale across channels.
- Tagging Google Ads traffic manually when auto-tagging is on. In most setups auto-tagging already handles it, and a conflicting manual tag can override richer data. Our guide to auto-tagging versus manual UTM tagging covers when each applies.
- Personal data in parameters. Never put an email address, name, or user ID in a UTM. It is a privacy problem and GA4 may reject or redact the hit.
If your reports are already in that state, the fix is a combination of a naming convention going forward and normalization rules that fold the existing variants together. Our article on fixing UTM parameters that break campaign tracking walks through both.
UTMs are the start of attribution, not the end
UTM parameters tell you which campaign brought a session to your site. They do not tell you whether that session became a lead or a customer, and they cannot send a conversion back to the ad platform that paid for the click. For that, the campaign data captured on the landing page has to be stored in a first-party record and connected to the form fill, purchase, or CRM stage that follows, then shared with Meta, Google, and TikTok through their conversions APIs. That is the job of a campaign tracking setup the whole team can trust, and it is why EndFrame captures UTMs on arrival, keeps them attached to the visitor, and forwards the eventual conversion server-side. UTMs are the first link in that chain, and getting them right makes everything after them easier.
Frequently asked questions
What does UTM stand for?
Urchin Tracking Module. Urchin was the web analytics product Google bought in 2005 and turned into Google Analytics. The parameter names were kept for backwards compatibility, which is why they still carry the Urchin prefix twenty years later.
Do UTM parameters affect SEO?
Not when used correctly. Google treats a URL with UTM parameters as a variant of the same page, and the canonical tag on the page tells search engines which version to index. Problems only appear if you put tagged links in your own navigation or let a tagged URL become the canonical. Use UTMs on external links such as ads, emails, and social posts, never on internal links.
Are UTM parameters case-sensitive?
Yes. Google Analytics 4 treats Facebook, facebook, and FACEBOOK as three separate sources. Lowercase everything, and use a naming convention so the whole team spells values the same way.
Which UTM parameters are required?
GA4 needs utm_source at minimum to attribute a session to a campaign, and in practice you should always set utm_source, utm_medium, and utm_campaign together. utm_term and utm_content are optional and mostly useful for paid campaigns with several keywords or creatives.
Can I use UTM parameters on internal links?
No. A UTM-tagged click inside your own site starts a new session attributed to the tag, which erases the real source and inflates session counts. Use event tracking for internal clicks and keep UTMs for traffic arriving from outside.
Sources
Try EndFrame
Recover the conversions your ad pixels miss.
EndFrame collects events first-party and forwards conversions server-side to Meta, GA4, TikTok, and webhooks with event-ID deduplication — then credits each conversion to its campaign, with the visit-to-conversion path you can audit.
No credit card required