Loading tool...
Loading tool...
Marketing & Analytics Guides
UTM parameters are the small tags at the end of a link that tell your analytics tool where a visitor came from. Used well, they turn a vague "we got more traffic this week" into a clear answer: which newsletter, which post, which ad and which button actually brought people in. Used carelessly, they fill your reports with duplicate sources, (not set) rows and traffic that lands in the wrong channel. This guide explains what each UTM parameter does, how Google Analytics 4 interprets the values you choose, and a naming convention that keeps your campaign data clean as it grows.
UTM parameters are query-string key and value pairs that you add to a destination URL. The name comes from Urchin, the analytics product Google acquired and built Google Analytics on, which is why every tag starts with utm_. They do not change the page a visitor sees. They only carry labels that your analytics script reads when the page loads.
Here is a tagged link, broken into its parts:
https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=2026-10_pricing-updatehttps://example.com/pricing is the page the visitor lands on.? starts the query string, and & separates each parameter.utm_source=newsletter, utm_medium=email and utm_campaign=2026-10_pricing-update are the labels Google Analytics records for the session.Each parameter answers one question about the click. Three of them form the core of every tagged link: Google's documentation says you should always use utm_source, utm_medium and utm_campaign, because missing UTM parameters appear as (not set) in reports. The other two, utm_content and utm_term, are optional and only worth adding when they answer a question you actually need answered.
utm_sourceWhere did the click come from?
The specific site, publisher or list that sent the visitor, such as google, linkedin, newsletter or partner-name.
utm_mediumWhat kind of channel was it?
The marketing channel type, such as email, cpc, social, referral or display. GA4 relies heavily on this value to group traffic into channels.
utm_campaignWhich campaign was it part of?
The campaign, promotion or launch name, such as 2026-10_product-launch. Use the same value everywhere the campaign runs.
utm_contentWhich link or creative was clicked?
Optional. Separates two links in the same email or two ad creatives, for example header-cta and footer-cta.
utm_termWhich paid keyword was it?
Optional. Intended for paid search keywords. Most other channels can leave it empty.
Google Analytics 4 also accepts four newer parameters. Google strongly recommends setting every parameter that is relevant to your campaign, including utm_id and utm_source_platform when they apply. If a parameter does not describe anything about your campaign, you can leave it out:
utm_id: A campaign ID that identifies a specific campaign or promotion. It is useful when you upload campaign data to Google Analytics, because the ID in your links should match the ID in the uploaded data.utm_source_platform: The platform responsible for directing the traffic, such as a buying platform that sets budgets and targeting criteria, or a platform that manages organic traffic data. Google's examples include Search Ads 360 and Display & Video 360. Set it whenever a platform like this directs the visits.utm_creative_format: The creative type, such as display, native or video. Google notes it is not currently reported in GA properties.utm_marketing_tactic: The targeting criteria, such as remarketing or prospecting. Also not currently reported in GA properties.In GA4, UTM values appear in acquisition dimensions such as Session source, Session medium, Session source / medium and Session campaign. Two details matter more than anything else when you choose values.
Google's documentation states that utm_source=google and utm_source=Google are different values. If one teammate types LinkedIn and another types linkedin, your reports show two separate sources that you have to merge by hand. Google's own best practice is a strict naming convention with lowercase as the standard.
GA4 sorts traffic into default channel groups such as Email, Organic Social and Paid Search. For manually tagged links, the rules look mainly at source and medium, and a few also look at the campaign name. Traffic from Google Ads, Merchant Center and other Google marketing platforms is classified using platform details instead, such as the ad network or campaign type. The default rules cannot be edited, so a creative medium like newsletter-blast combined with a source like newsletter ends up as Unassigned instead of Email. If you need different groupings, GA4 lets you create a custom channel group alongside the default one. These are some of the medium values that match the default rules for tagged links:
email
Source or medium matches email, e-mail, e_mail or e mail.
social
Organic Social
Also matches social-network, social-media, sm, social network and social media, or a source on Google's list of social sites.
cpc / ppc / paid-social
Paid Search, Paid Social, Paid Video, Paid Shopping or Paid Other
Medium matches the paid pattern. The source, and for Paid Shopping also the campaign name, decides which paid channel applies.
display / banner / cpm
Display
Also matches expandable and interstitial.
referral
Referral
Also matches app and link.
affiliate
Affiliates
Must be exactly affiliate.
sms
SMS
Source or medium exactly matches sms.
The same source can land in different channels depending on the medium, and the same medium can land in different channels depending on the source. A few examples under the default rules:
google / cpc is Paid Search, because a search engine source is combined with a paid medium. google / organic is Organic Search.facebook / paid-social is Paid Social, while facebook / social is Organic Social.newsletter / email is Email, but newsletter / newsletter-blast is Unassigned.partner-blog / referral is Referral.poster / qr is generally Unassigned, because no default rule matches that source or medium.Paid channels use a pattern: a medium that contains cp, equals ppc or retargeting, or starts with paid counts as paid traffic. GA4 then checks the source against Google's lists of search, social, video and shopping sites to choose Paid Search, Paid Social, Paid Video or Paid Shopping, and falls back to Paid Other when none match. The campaign name matters too: a campaign name containing cross-network is grouped as Cross-network, and one containing shopping can put traffic in a Shopping channel. While parameter values are case sensitive in reports, Google notes that the channel definitions themselves are not. For the full rule set, see Google's default channel group documentation.
Most messy campaign reports are not caused by tools. They come from five people tagging links five different ways. A short, written convention fixes that. These rules work for most teams:
product-launch. Spaces get encoded as + or %20 and are easy to mistype.2026-10_product-launch. Dated campaign names sort chronologically in reports.email, social, cpc, referral and display over invented labels.linkedin or linked-in, and keep the list where the whole team can see it.The exact format matters less than consistency. A convention that everyone follows beats a perfect one that nobody remembers.
The examples below follow the convention above. Notice that the same campaign name is reused across channels, so GA4 can report the whole launch as one campaign while source and medium show where each click came from.
https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=2026-10_pricing-update&utm_content=header-ctahttps://example.com/blog/launch?utm_source=linkedin&utm_medium=social&utm_campaign=2026-10_product-launchhttps://example.com/signup?utm_source=facebook&utm_medium=paid-social&utm_campaign=2026-10_product-launch&utm_content=video-15shttps://example.com/event?utm_source=poster&utm_medium=qr&utm_campaign=2026-11_devmeetuphttps://example.com/?utm_source=partner-blog&utm_medium=referral&utm_campaign=2026-q4_partner-programThe QR poster example uses qr as its medium, which does not match a default channel rule, so under the default rules GA4 generally reports it as Unassigned. Some teams accept that because qr is easy to filter on. Others use utm_medium=offline with a custom channel group. Choose one approach and document it. If you print campaign links, our guide to the best free QR generator online covers scan-friendly QR design.
UTM tags describe how a visitor arrived from outside your site. Adding them to your own menus, banners or blog links replaces the visitor's real source with an internal label. To measure clicks inside your site, use analytics events instead.
Email, email and EMAIL become three separate values. Lowercase every value before you share a link.
Never put names, email addresses or customer IDs in UTM values. Google's guidance on avoiding PII says URL paths and parameters must be free of personally identifiable information.
Redirects, link shorteners and some landing-page setups can drop query strings. Click every tagged link before launch and confirm the parameters are still in the address bar, and that the visit appears in GA4 Realtime.
Every tagged URL is technically a different address for the same page. The usual fix is to declare a canonical URL, a link rel="canonical" tag pointing at the clean version without parameters. Keep in mind that a canonical tag is a signal, not a guarantee: Google describes it as a hint, not a rule, and may choose a different canonical page. Consistent signals make your preference clearer. If you use Next.js, the Metadata API's alternates.canonical field generates that tag for you.
Keep UTM links for external campaigns only. Do not use them in your navigation, internal links, XML sitemap or canonical tags. Google's guidance is to link internally to the canonical URL and to list canonical URLs in your sitemap. When you share tagged links on social platforms, the preview is built from your page's Open Graph tags, so it is worth checking how the card looks with the OG Previewer before a campaign goes out.
You can write UTM links by hand, but a builder catches the small errors that break tracking, such as a missing ?, a second ? instead of &, or an unencoded space. Google offers its own Campaign URL Builder, and the DevMeldex UTM Builder works entirely in your browser:
utm_source, utm_medium and utm_campaign using your naming convention.utm_content if you need to tell two links or creatives apart, and utm_term for paid keywords.The DevMeldex builder keeps a short history of links you copy in your browser's local storage, so the values stay on your device and you can clear them at any time. Nothing you type is sent to a server.
Use our free browser-based UTM Builder to create consistent campaign URLs for GA4, without sign-up and without sending your links to a server.
Try UTM Builder →Explore more privacy-first browser tools for developers, marketers, and creators. All tools work instantly with no sign-up or server uploads required.