UTM Parameters: A Complete Guide With Examples (2026)
Every UTM parameter explained, how GA4 turns them into source, medium, campaign and default channels, copy-paste examples by channel, and a naming sheet your team can use.
You posted on LinkedIn, sent a newsletter and ran a small Reddit ad in the same week. Signups went up. Which one worked? Without UTM parameters, GA4 lumps a lot of that traffic into Direct, Referral or Unassigned and you're left guessing.
UTM parameters fix that, but only if the whole team tags links the same way. One person writes LinkedIn, another writes linkedin.com, and your report splits one channel into three rows. This guide covers every UTM parameter GA4 supports, how GA4 maps them to source, medium, campaign and default channel groups, naming rules that keep reports clean, copy-paste examples by channel, and the mistakes that quietly break attribution.
Quick answer: UTM parameters are tags you add to the end of a URL so analytics tools know where a visit came from. The three you should always use are utm_source (the platform, like linkedin), utm_medium (the type of traffic, like social or email) and utm_campaign (the campaign name). Add utm_content to tell creatives apart, utm_term for paid keywords, and utm_id if you import campaign cost data into GA4. Use lowercase, pick one value per platform, never tag internal links, and check the link in GA4 Realtime before launch. Our free UTM builder formats all of this for you.
What are UTM parameters?
UTM parameters are query string tags added after a ? in a URL. When someone clicks the link, GA4 reads the tags and records the visit's source, medium and campaign.
Here's a tagged link, split up so you can see each part:
https://example.com/pricing
?utm_source=linkedin
&utm_medium=social
&utm_campaign=2026-10-product-launch
&utm_content=founder-post
As a single line it looks like this:
https://example.com/pricing?utm_source=linkedin&utm_medium=social&utm_campaign=2026-10-product-launch&utm_content=founder-post
Parameters can go in any order. Each one is a name=value pair, separated by &.
The five standard UTM parameters
| Parameter | What it records | Example values | Required? |
|---|---|---|---|
utm_source | Where the traffic comes from: the platform, site or publisher | google, linkedin, newsletter | Yes |
utm_medium | The type of traffic | cpc, paid_social, social, email, affiliate | Yes |
utm_campaign | The campaign, promotion or launch | 2026-10-product-launch, black-friday | Yes |
utm_content | Which creative, link or placement was clicked | hero-cta, video-a, footer-link | Optional |
utm_term | The paid search keyword | ai-cmo, utm-builder | Optional |
Google's GA4 campaign URL documentation says: "When you add parameters to a URL, you should always use utm_source, utm_medium, and utm_campaign."
GA4-specific UTM parameters
GA4 supports four more parameters. Two are useful now; two are accepted but not yet reported.
| Parameter | What it's for | Reported in GA4? |
|---|---|---|
utm_id | Campaign ID. Needed to match imported campaign cost data to your sessions | Yes |
utm_source_platform | The platform that directed the traffic, such as a buying platform (for example, Search Ads 360 or Display & Video 360) | Yes |
utm_creative_format | Type of creative, such as display, native, video or search | Not currently |
utm_marketing_tactic | Targeting, such as remarketing or prospecting | Not currently |
Google's docs note that utm_creative_format and utm_marketing_tactic "isn't currently reported in Google Analytics properties." You can add them for the future, but you won't see them in reports today.
How GA4 uses your UTM parameters
GA4 turns each parameter into dimensions you can report on. The main ones, from Google's traffic-source dimensions guide:
| Parameter | GA4 dimensions |
|---|---|
utm_source | Session source, Manual source, First user manual source |
utm_medium | Session medium, Manual medium, First user manual medium |
utm_campaign | Session campaign, Manual campaign name, First user manual campaign name |
utm_id | Manual campaign ID, Session manual campaign ID |
utm_content | Manual ad content, Session manual ad content |
utm_term | Manual term, Session manual term |
utm_source_platform | Manual source platform, Session manual source platform |
You'll find the main view in Reports > Acquisition > Traffic acquisition, where you can switch between session source/medium, source, medium and campaign.
Two rules worth knowing:
- Auto-tagging wins. If you use Google Ads auto-tagging and UTMs together, GA4 uses the auto-tagged values. Google recommends adding UTMs anyway, because when the click ID can't be used (for example, when ad consent is denied), GA4 falls back to your UTM values.
- Missing parameters show as (not set). If a URL has any UTM parameter and GA4 falls back to UTMs, it uses UTMs exclusively. Leave out medium or campaign and you'll see (not set).
How UTMs map to default channel groups
GA4 assigns every session to a default channel using rules based mainly on source and medium. These rules can't be edited, so your medium values decide where traffic lands. From Google's default channel group definitions:
| Channel | Rule for manually tagged traffic |
|---|---|
Source or medium is email (also e-mail, e_mail, e mail) | |
| Organic Social | Source is on Google's list of social sites, or medium is social, social-network, social-media, sm, social network or social media |
| Paid Social | Source is on the social sites list AND medium contains cp, is ppc or retargeting, or starts with paid |
| Paid Search | Source is on the search sites list AND medium matches the same paid pattern |
| Display | Medium is display, banner, expandable, interstitial or cpm |
| Affiliates | Medium is affiliate |
| Referral | Medium is referral, app or link |
| Audio | Medium is audio |
| SMS | Source or medium is sms |
| Paid Other | Medium matches the paid pattern but the source isn't on a known list |
| Unassigned | Nothing matches |
Channel rules aren't case sensitive, but reports are. Email and email both land in the Email channel, yet show as separate rows when you look at medium.
GA4 also has an AI Assistant channel for visits referred by tools like ChatGPT, Gemini and Copilot. Google assigns it automatically from the referrer, so you don't need to tag those visits. Google's AI Overviews and AI Mode count as Organic Search.
UTM naming conventions that keep reports clean
Google's own best practices come down to consistency. The rules we recommend:
- Lowercase everything. GA4 treats
LinkedInandlinkedinas different values. - Use hyphens, not spaces. Spaces become
%20or+and are easy to mistype. - One source per platform. Pick
linkedinand never uselinkedin.com,liorLinkedInfor the same thing. - Mediums come from a fixed list. Use values GA4 recognizes:
social,paid_social,email,cpc,affiliate,referral,display,audio,sms. - Campaign names follow one pattern. For example
yyyy-mm-short-name, like2026-10-product-launch. Use the same campaign name across every channel in that campaign. - Use utm_content for variants. Creative, placement, CTA or post type goes here, not in the campaign name.
- Never put personal data in UTMs. No email addresses or names; Google Analytics policies prohibit sending personally identifiable information.
Our UTM builder has a "force lowercase and hyphens" option and warns you about missing fields, existing UTMs on the URL and inconsistent capitalization.
UTM parameter examples by channel
Copy these and swap in your own domain and campaign name. The last column shows which GA4 default channel each one lands in, based on Google's rules above.
| Channel | utm_source | utm_medium | utm_content example | GA4 default channel |
|---|---|---|---|---|
| X organic post | x | social | launch-thread | Organic Social |
| X ads | x | paid_social | video-ad-a | Paid Social if x is on Google's social list; otherwise Paid Other (check) |
| LinkedIn organic | linkedin | social | founder-post | Organic Social |
| LinkedIn ads | linkedin | paid_social | carousel-b | Paid Social |
| Reddit organic | reddit | social | r-saas-comment | Organic Social |
| Reddit ads | reddit | paid_social | promoted-post-a | Paid Social |
| Newsletter | newsletter | email | top-link | |
| Lifecycle email | onboarding-email | email | day-3-cta | |
| Facebook ads | facebook | paid_social | static-ad-1 | Paid Social |
| Instagram ads | instagram | paid_social | reel-ad-2 | Paid Social |
| QR code on a flyer | conference-flyer | qr | booth-a | Unassigned (see below) |
| Partner or affiliate | partner-name | affiliate | review-page | Affiliates |
| Influencer on Instagram | instagram | influencer | creator-handle | Organic Social |
| Podcast ad | podcast-name | audio | mid-roll | Audio |
A full example for a newsletter link:
https://example.com/blog/new-feature?utm_source=newsletter&utm_medium=email&utm_campaign=2026-10-product-launch&utm_content=top-link
A few notes on the trickier rows:
- X: Google's published list of social sources includes
twitterandt.co, but the downloadable version was last updated in 2023 and doesn't listx. Organic posts are safe becauseutm_medium=socialmaps to Organic Social on its own. For X ads, check where the traffic lands after launch. If it shows as Paid Other, either usetwitteras the source or create a custom channel group. - QR codes: there's no offline channel in GA4's default grouping, so
utm_medium=qrshows as Unassigned. That's fine if you report on it by medium. If you want a clean channel, create a custom channel group with an "Offline" channel forqrandprint. - Influencers: with
instagramas the source, GA4 puts the visit in Organic Social. Put the creator's handle inutm_contentso you can compare creators. If you pay a commission per sale,utm_medium=affiliateputs them in Affiliates instead.
The UTM builder has presets for most of these channels, including X, LinkedIn and Reddit (organic and ads), newsletter, lifecycle email, affiliate, podcast and QR code. It can also generate links for several channels at once and export them as a CSV.
Common UTM mistakes
Adding UTMs to internal links
Tagging a banner on your own homepage makes GA4 record a new campaign touch in the middle of a visit. The visitor who arrived from Google search now looks like they came from your homepage banner, and the real channel loses credit. Track internal clicks with events instead.
Inconsistent casing and spelling
Newsletter, newsletter and news-letter are three sources in GA4. Agree on the values once, write them down, and use a builder that forces lowercase.
Redirects and link shorteners stripping parameters
Some redirects drop the query string. So do some link shorteners and badly configured CMS rules (for example, forcing a trailing slash). Always click the final link and check that the UTMs survive to the landing page.
Putting UTMs after the # in a URL
Everything after # is a page fragment. UTMs need to come before it: example.com/page?utm_source=x&utm_medium=social#pricing, not example.com/page#pricing?utm_source=x.
Using mediums GA4 doesn't recognize
utm_medium=post or utm_medium=promo doesn't match any channel rule, so the traffic goes to Unassigned. Stick to the mediums in the channel table.
Tagging links you want to rank
Links from other sites to your pages are part of how search engines find and rank you. You can use UTMs on guest posts or partner links for tracking, but make sure your pages have a canonical tag pointing to the clean URL so the tagged version isn't treated as a separate page.
A simple UTM naming sheet for your team
A shared spreadsheet stops most UTM problems. Two tabs are enough.
Tab 1: allowed values.
| Field | Allowed values |
|---|---|
| utm_medium | social, paid_social, email, cpc, affiliate, referral, display, audio, sms, qr |
| utm_source | x, linkedin, reddit, facebook, instagram, youtube, google, newsletter, onboarding-email, [partner names] |
| utm_campaign format | yyyy-mm-short-name, lowercase, hyphens |
| utm_content format | short description of the creative or placement, lowercase, hyphens |
Tab 2: link log.
| Date | Owner | Destination URL | Source | Medium | Campaign | Content | Final URL | Checked in Realtime? |
|---|---|---|---|---|---|---|---|---|
| 2026-10-01 | Maya | /pricing | social | 2026-10-product-launch | founder-post | (full URL) | Yes |
Anyone creating a link picks from Tab 1 and logs it in Tab 2. Before launch, open the link and check GA4 Realtime to confirm the source, medium and campaign come through correctly.
Where Okara fits
The Okara UTM builder is free: add a destination, pick a channel preset or enter your own values, and copy one link or export a batch as CSV. It keeps existing query parameters and anchors on the URL, which helps with the fragment mistake above.
If you want help beyond tagging, Okara's AI CMO connects to GA4 and Search Console, and its SEO Agent, included in AI CMO Lite at $129/month (pricing), recommends technical SEO fixes and content opportunities. It won't clean up inconsistent UTM data after the fact, so the naming work above still matters.
Common questions
What are the 5 UTM parameters?
utm_source, utm_medium, utm_campaign, utm_term and utm_content. GA4 also supports utm_id, utm_source_platform, utm_creative_format and utm_marketing_tactic, though the last two aren't currently reported.
Which UTM parameters are required?
Google recommends always using utm_source, utm_medium and utm_campaign. Add utm_id if you import campaign cost data into GA4.
Are UTM parameters case sensitive?
Yes. GA4 treats utm_source=Google and utm_source=google as different values. Default channel rules aren't case sensitive, but your source and medium reports will still show separate rows.
Where do I see UTM data in GA4?
Go to Reports > Acquisition > Traffic acquisition and choose session source/medium, session source, session medium or session campaign as the primary dimension. You can also use these dimensions in Explorations.
Do UTM parameters affect SEO?
Not directly. Search engines can see tagged URLs as duplicates, so make sure every page has a canonical tag pointing to its clean URL. Don't add UTMs to your own internal links or to your sitemap.
Should I use UTMs on Google Ads links?
Google Ads auto-tagging is the main method, and GA4 uses auto-tagged values when both are present. Google recommends adding UTMs as well so GA4 has a fallback when the click ID can't be used.


