UTM Parameters: Complete Guide With Examples visual workflow

Short answer: A UTM parameters example: https://example.com/offer?utm_source=facebook&utm_medium=paid-social&utm_campaign=diwali-sale-oct-2026&utm_content=reel-hindi-v1. Always set utm_source, utm_medium and utm_campaign, write every value in lowercase from an approved list, and pick the medium to match GA4's default channel group rules, or the visit lands in "Unassigned". Leave Google Ads to auto-tagging, never put personal data in a UTM, and log every link in one shared sheet.

On this pageThe UTM fieldsUTM parameters examples by channelHow GA4 maps UTMs to channelsNaming conventionUTM parameter validation rulesGovernance sheetGetting UTMs into the CRMCommon mistakesSources

Need this done for you? GrowthSparx offers a fixed-scope lead tracking and attribution setup: GA4, Google Ads, Meta, WhatsApp, calls and CRM wired into one dashboard, usually live in 2–3 weeks.

What are UTM parameters and which ones does GA4 read?

UTM parameters are labels you add to the end of a link so analytics tools know which campaign sent the visit. GA4 reads nine of them. Google's URL builders help page says to "always use" source, medium and campaign, and that values are case sensitive: google and Google become two different sources.

ParameterAnswers the questionOur conventionRequired?
utm_sourceWhich site, app or list sent the visit?Platform name: facebook, instagram, linkedin, newsletter, whatsappYes
utm_mediumWhat kind of channel?From a fixed list of 10–12 values (see the channel table below)Yes
utm_campaignWhich campaign or offer?offer-month-year, e.g. monsoon-sale-jul-2026Yes
utm_contentWhich creative or link?format-language-version, e.g. reel-hindi-v2Recommended
utm_termWhich keyword or audience?Paid keyword or audience name, e.g. lookalike-1pc-buyersOptional
utm_idWhich campaign ID?The platform campaign ID, useful if you import cost dataOptional
utm_source_platformWhich buying platform?Rarely needed outside Google's own platformsOptional
utm_creative_format, utm_marketing_tacticCreative type; prospecting vs remarketingSkip: Google says these are "not currently reported" in GA4No

Missing values show up as "(not set)" in reports. Parameter order does not matter, and GA4 strips UTMs from the "Landing page + query string" dimension; you will find the full tagged URL under "Page location".

UTM parameters examples by channel (copy and adapt)

These are the patterns we use for Indian lead-generation and D2C accounts. Each row shows the GA4 default channel the visit should land in, based on the rules in the next section. Replace the campaign and content values with your own. You can generate any of them with our free UTM builder, which lowercases and encodes values for you.

#Placementutm_sourceutm_mediumutm_campaign / utm_contentGA4 channel
1Meta ad, Facebook feedfacebookpaid-social3bhk-sector-150-oct-2026 / carousel-english-v1Paid Social
2Meta ad, Instagram Reelinstagrampaid-socialdiwali-sale-oct-2026 / reel-hindi-v2Paid Social
3Meta retargeting adfacebookretargetingdiwali-sale-oct-2026 / cart-abandoners-static-v1Paid Social
4Instagram bio linkinstagramsocialalways-on / bio-linkOrganic Social
5LinkedIn sponsored postlinkedinpaid-socialcfo-webinar-nov-2026 / document-ad-v1Paid Social
6Google Search adNo UTMs: keep auto-tagging on (GCLID)Paid Search
7Microsoft Ads search adbingcpcbrand-search-2026 / rsa-v1Paid Search
8Google Business Profile website buttongoogleorganicgbp-noida-office / website-buttonOrganic Search
9WhatsApp broadcast to opted-in listwhatsappbroadcastopen-house-nov-2026 / template-v1Organic Social (default) or a custom "WhatsApp" channel
10Link sent by sales on WhatsAppwhatsappsales-followuppricing-page / rm-shareOrganic Social (default); exclude from budget decisions
11Email newsletter (Zoho Campaigns, Mailchimp)newsletteremailnov-2026-edition / hero-ctaEmail
12Transactional SMSsmssmsemi-reminder-nov-2026 / link-1SMS
13QR code on a hoardinghoarding-noida-expresswayqr-codelaunch-oct-2026 / qr-billboard-v1Unassigned unless you add a custom channel
14QR code on a brochure or standeebrochureqr-codeexpo-pragati-maidan-2026 / standee-aUnassigned unless you add a custom channel
15Paid influencer, Instagram story linkinstagrampaid-influencerskincare-launch-nov-2026 / creator-handle-storyPaid Social
16Unpaid creator or barter postinstagramsocialskincare-launch-nov-2026 / creator-handle-barterOrganic Social
17Commission-based affiliatepartner-site-nameaffiliatefestive-2026 / banner-300x250Affiliates
18YouTube video description (organic)youtubevideoemi-explainer-2026 / description-linkOrganic Video
19Paid listing on a property portal linking to your site99acrespaid-listingsector-150-oct-2026 / featured-listingPaid Other

A full link from row 2 looks like this:

https://example.com/diwali-sale?utm_source=instagram&utm_medium=paid-social&utm_campaign=diwali-sale-oct-2026&utm_content=reel-hindi-v2

For Meta ads, add the tags in the ad's URL parameters field rather than in the website URL, so the landing page stays clean and the same parameters apply to every placement. Meta also offers dynamic values (campaign, ad set and ad names) that fill in automatically; if you use a dynamic source value, check in GA4 which values actually arrive, because any source that is not on Google's social list will not reach Paid Social.

How does GA4 decide the channel from your UTMs?

GA4 sorts manually tagged traffic into its default channel group using source, medium and campaign name. These are the rules that matter for the examples above:

ChannelRule for manual (UTM) traffic
Paid SocialSource is on Google's social-site list and medium matches ^(.*cp.*|ppc|retargeting|paid.*)$
Organic SocialSource is on the social list, or medium is social, social-network, social-media, sm, social network or social media
Paid SearchSource is on the search-site list and medium matches the same paid pattern
Organic SearchSource is on the search list, or medium is exactly organic
EmailSource or medium is email, e-mail, e_mail or e mail
SMSSource or medium is exactly sms
AffiliatesMedium is affiliate
ReferralMedium is referral, app or link
DisplayMedium is display, banner, expandable, interstitial or cpm
Organic Video / Paid VideoSource is on the video list (or medium contains "video" for organic); paid needs the paid medium pattern
Paid OtherMedium matches the paid pattern but no other paid rule applies
UnassignedNothing matches

Google publishes the source lists as a downloadable spreadsheet from the same help page. Checked October 2026, facebook, fb, instagram, ig, linkedin, whatsapp, quora and t.me are listed as social; youtube is listed as video; google and bing as search. "telegram", "sharechat" and "x" were not on the list, so tag those visits with utm_medium=social (organic) or a custom channel.

Three consequences people miss:

  • Any medium containing "cp" counts as paid. cpc, cpm and cpl all match .*cp.*. That is why row 19 lands in Paid Other: 99acres is not on the social or search lists, but the medium is paid.
  • Invented mediums fall into Unassigned. qr-code, influencer, print and offline match nothing. Either use a medium GA4 recognises or build a custom channel group (Admin, Data display, Channel groups). Standard properties get two custom groups of up to 50 channels each, and Google says they apply to reports retroactively. We usually add "QR and Offline" (medium exactly qr-code) and "WhatsApp" (source exactly whatsapp) above the social channels.
  • The source alone can decide the channel. Because whatsapp is on the social list, a WhatsApp broadcast tagged utm_medium=broadcast still lands in Organic Social. If you want WhatsApp separated from Instagram, the custom channel is the only clean way.

Why not tag Google Ads with UTMs?

Auto-tagging appends a GCLID to every ad click, and Google's auto-tagging page states that in GA4 "auto-tagging is prioritized over manual tagging due to the absence of an override option." Manual UTMs on Google Ads add maintenance without changing GA4 reports, and the GCLID is what offline imports need. If you want keyword or match-type detail in your CRM, use ValueTrack parameters in a tracking template, e.g. {lpurl}?kw={keyword}&mt={matchtype}&cid={campaignid}. The template must include {lpurl} or the landing page breaks.

What naming convention should you use?

The convention matters more than the exact words. Ours, which matches the defaults in the UTM builder:

  1. Lowercase only. Case sensitivity is the commonest cause of split rows.
  2. Hyphens between words, no spaces, underscores or plus signs. Pick one separator and never mix.
  3. Source = the platform, not the agency or the tool that sent it. Use newsletter not zoho, because you may switch tools.
  4. Medium = channel type from a closed list. Ours: paid-social, retargeting, cpc, social, email, sms, broadcast, sales-followup, affiliate, paid-influencer, qr-code, referral, video, organic.
  5. Campaign = offer-or-project + month + year, so a report sorted alphabetically groups by offer: open-house-nov-2026.
  6. Content = format-language-version, so you can filter on "hindi" or "reel" across campaigns.
  7. Term = keyword or audience, used only where it adds a decision (e.g. comparing a lookalike with an interest audience).

UTM parameter validation rules

Run every link through these checks before it goes into an ad, email or QR code. If you keep links in a Google Sheet, rule 1 can be a data-validation formula: =REGEXMATCH(B2,"^[a-z0-9]+(-[a-z0-9]+)*$").

RulePassFail
1. Values match ^[a-z0-9]+(-[a-z0-9]+)*$diwali-sale-oct-2026Diwali Sale, diwali_sale--2026
2. Source, medium and campaign all presentAll three setMedium missing, so the row reads "(not set)"
3. Medium is on the approved listpaid-socialfb-ads, paidsocial, Paid_Social
4. Source + medium give the intended GA4 channelinstagram + paid-social = Paid Socialinsta + ads = Unassigned
5. No personal datautm_content=rm-shareutm_term=9876543210, an email address or a name
6. No UTMs on internal linksTags only on links from outside your siteA homepage banner tagged to your own pricing page, which restarts attribution
7. Exactly one ?, then & between pairs, any #anchor last/page?ref=a&utm_source=x#form/page#form?utm_source=x (UTMs after the # are not read)
8. Survives redirectsParameters visible on the final pageShortener or http-to-https redirect drops the query string
9. No UTMs on Google Ads final URLs when auto-tagging is onGCLID onlyBoth GCLID and UTMs

Rule 5 is a Google policy, not a preference. Google's PII guidance names utm_source, utm_medium, utm_term, utm_campaign and utm_content as places personal information must not appear. It also matters under India's DPDP Act: a phone number in a URL ends up in server logs, analytics and every tool that sees the link.

What should a UTM governance sheet contain?

One shared sheet, one owner, and a rule that nobody types a UTM by hand. Columns we use:

ColumnExampleWhy
Date created2026-10-08Audit trail
OwnerPriya (paid social)Who to ask when a row looks wrong
Destination URLhttps://example.com/sector-150Checks the page still exists
source / medium / campaign / content / termfacebook / paid-social / 3bhk-sector-150-oct-2026 / carousel-english-v1 / –Validated by formula
Expected GA4 channelPaid SocialChecked against GA4 a day after launch
Final URLGenerated by formula, never typedRemoves typos
PlacementMeta ad set "NCR 28-45 lookalike"Links the tag to where it was used
QA statusTested: redirect OK, GA4 OK, CRM OKNothing goes live untested

Review the sheet monthly against GA4's "Session source / medium" report. Any combination that appears in GA4 but not in the sheet is a link someone made by hand, and any session landing in Unassigned points to a medium that needs fixing.

How do you get UTM values into the CRM?

GA4 tells you which campaigns bring sessions. Only the CRM can tell you which campaigns bring buyers, so the UTMs have to travel with the lead:

  1. On landing, a small script stores the UTMs and click IDs (gclid, fbclid) in a first-party cookie, so they survive if the visitor browses three pages before enquiring.
  2. Hidden form fields read the cookie and submit utm_source, utm_medium, utm_campaign, utm_content and the click IDs with the lead. Our form tracking guide covers the GTM side.
  3. Map each hidden field to its own CRM property, with separate first-touch and latest-touch versions. How to persist and report those is covered in CRM revenue attribution setup.
  4. Submit one test lead per channel from the governance sheet and check the CRM record before launch.

If your form or checkout sits on another domain, the UTMs and GA4 session will break at the hop unless you configure cross-domain tracking.

What are the most common UTM mistakes?

  • Three spellings of one medium. "paid_social", "paidsocial" and "Paid-Social" create three rows. Fix: closed medium list, validated by formula.
  • Tagging internal banners. A visitor from a Meta ad who clicks your own tagged banner gets a new session credited to the banner. Fix: use GA4 events or ?ref= parameters for internal promotion tracking, never UTMs.
  • UTMs on a QR code that points to a short link with no redirect test. Printed material cannot be corrected. Fix: point the QR at a redirect you control and test it on Android and iPhone camera apps before printing.
  • Treating sales follow-up links as marketing. When a relationship manager sends the pricing page on WhatsApp, last-click reports credit WhatsApp for a deal Meta or Google created. Fix: tag them utm_medium=sales-followup and report them separately. Our first-touch vs last-touch guide explains why this distorts budgets.
  • Click-to-WhatsApp ads tagged like website ads. These clicks open a chat, not your site, so UTMs never reach GA4. Use the referral data in the chat webhook instead, as covered in WhatsApp lead tracking.

Sources

FAQ

Common questions

What is an example of a UTM parameter?

A typical example is https://example.com/offer?utm_source=instagram&utm_medium=paid-social&utm_campaign=diwali-sale-oct-2026&utm_content=reel-hindi-v2. Source names the platform, medium names the channel type, campaign names the offer, and content separates creatives. With these values GA4 places the visit in its Paid Social channel, and the content value lets you compare the Hindi Reel against other ads in the same campaign.

What are the validation rules for UTM parameters?

Use lowercase letters, numbers and single hyphens only; always include source, medium and campaign; take the medium from an approved list; confirm the source and medium land in the intended GA4 channel; keep personal data out; never tag internal links; keep any #anchor at the end of the URL; and test that redirects keep the parameters. A spreadsheet regex such as ^[a-z0-9]+(-[a-z0-9]+)*$ catches most errors.

Are UTM parameters case sensitive in GA4?

Yes. Google states that UTM parameter values are case sensitive, so utm_source=Facebook and utm_source=facebook appear as two separate sources and split your data. The fix is a lowercase-only rule enforced by your link builder or a validation formula in the governance sheet, plus a monthly check of the Session source / medium report for stray capitalised values.

Why is my UTM traffic showing as Unassigned in GA4?

GA4 marks a session Unassigned when its source and medium match none of the default channel rules. Invented mediums such as qr-code, influencer, print or ads are the usual cause. Either switch to a recognised medium (social, email, sms, affiliate, referral, or a paid pattern such as paid-social or cpc) or create a custom channel group with a rule for your medium, which applies retroactively.

Should I add UTM parameters to Google Ads?

Usually no. Keep auto-tagging on so every click carries a GCLID. Google says GA4 prioritises auto-tagging over manual tagging and offers no override, so manual UTMs on Google Ads add work without changing GA4 reports. If you need keyword or match type in your CRM, add ValueTrack parameters such as {keyword} and {matchtype} through a tracking template instead.

How do I tag WhatsApp and QR code links with UTMs?

For a WhatsApp broadcast use utm_source=whatsapp with a medium like broadcast; whatsapp is on Google's social list, so it lands in Organic Social unless you build a custom WhatsApp channel. For QR codes use a source naming the print item (brochure, hoarding-location) and utm_medium=qr-code, then add a custom channel group rule, because qr-code alone falls into Unassigned.

Need a practical growth system?

Book a review of your current acquisition, content and conversion workflow.

Book a Strategy Call
RS
Founder & Performance Marketing Lead, GrowthSparx

Rinku works across SEO, lead generation, paid acquisition and conversion systems for Indian and global businesses. This article uses practical operating frameworks, identifies limitations and links changing platform facts to primary sources.

Have a question? Message us directly on WhatsApp—usually a reply within a few hours.

Chat on WhatsApp