UTM parameters are short tags added to a link (utm_source, utm_medium, utm_campaign and others) that tell GA4 where a visit came from. Good UTM tracking needs three things: one lowercase naming convention, a shared governance sheet that every link is built from, and a QA step before anything goes live.
This guide covers every parameter GA4 supports, how GA4 turns source and medium into channels, when to rely on Google Ads auto-tagging, how to tag Meta, LinkedIn, QR and WhatsApp links, how to carry UTMs into your CRM, and a 30-day plan to clean up reporting.
Key takeaways
- GA4 supports nine UTM parameters; source, medium and campaign drive your channel reports, so never leave them out.
- UTM values are case sensitive in GA4:
Googleandgoogleare different sources. Use lowercase, always. - Your utm_medium value decides the GA4 default channel. Invented mediums such as
qrorwhatsappland in Unassigned unless you map them. - Keep Google Ads auto-tagging on; use UTMs for every other paid, email, social, partner and offline link, and never on internal links.
- A governance sheet, one owner and a QA check before launch matter more than any tool.
What does recent data say about why UTM discipline matters?
UTM tagging matters most where the budget goes. Gartner’s 2025 survey of digital marketing spend (June 2025, 402 marketing leaders in North America, the UK and Europe) found digital channels take 61.1% of total marketing spend. Within digital, paid search took 13.9%, display 12.5%, social advertising 12.2% and email 7.4%, all channels that send people to your site through links that need consistent tags.
Gartner’s 2025 CMO Spend Survey (May 2025) found budgets flat at 7.7% of company revenue, with 59% of CMOs saying their budget was insufficient for their strategy. With flat budgets, proving which campaign produced which lead matters more.
Share of digital marketing spend by channel, 2025
Google’s guidance on Unassigned traffic says Unassigned rows appear when a traffic source does not fit any channel definition, and a user-defined source or medium with no matching rule is one cause. Most messy channel reports are self-inflicted. The chart below illustrates the change governance aims for, with invented numbers.
Illustrative: Unassigned sessions before and after UTM governance
What are UTM parameters and which ones does GA4 support?
A UTM-tagged link is a normal URL with a query string added, for example https://example.com/demo/?utm_source=linkedin&utm_medium=paid_social&utm_campaign=2026q4_demo_in. GA4 reads the parameters on landing; Google notes that custom-campaign values map directly to report dimensions and each session is associated with only one campaign or traffic source.
| Parameter | What it records (per Google) | Bargaon convention |
|---|---|---|
utm_source |
Referrer, e.g. google, newsletter4, billboard | Platform or publisher, lowercase |
utm_medium |
Marketing medium, e.g. cpc, banner, email | Approved list only (next table) |
utm_campaign |
Product, slogan, promo code, e.g. spring_sale | e.g. 2026q4_demo_in |
utm_id |
Campaign ID for a specific campaign or promotion | Sheet ID, e.g. c0142 |
utm_term |
Paid keyword | Keyword or audience |
utm_content |
Differentiates creatives or links in the same message | Creative variant, e.g. video_a |
utm_source_platform |
Platform directing traffic, e.g. Search Ads 360, Display & Video 360 | Only if you use such platforms |
utm_creative_format |
Type of creative, e.g. display, native, video, search | Optional; not currently reported in GA4 |
utm_marketing_tactic |
Targeting criteria, e.g. remarketing, prospecting | Optional; not currently reported in GA4 |
Google’s URL builder help also says parameter values are case sensitive, missing parameters show as (not set), and UTMs are kept in Page location rather than the page path dimensions. For cost data from non-Google platforms, GA4’s campaign data import requires utm_source and utm_medium, and imported campaign ID, source, medium and name must match your URLs, a good reason to add utm_id from day one.
How does GA4 use source and medium to assign channels?
GA4’s default channel group is a set of rules, mostly keyed on utm_medium. Google’s default channel group definitions are not case sensitive. For paid search, social and video, GA4 also checks that the source is on its list of search, social or video sites. For property setup, see our GA4 setup guide.
| utm_medium value | GA4 default channel | Rule summary (Google) |
|---|---|---|
cpc, ppc, paid_social, retargeting |
Paid Search, Paid Social or Paid Video | Medium matches ^(.*cp.*|ppc|retargeting|paid.*)$ and the source is a search, social or video site |
social, social-media, sm |
Organic Social | Medium is one of the listed social values, or the source is a known social site |
email, e-mail |
Source or medium is email, e-mail, e_mail or e mail | |
display, banner, cpm |
Display | Medium is display, banner, expandable, interstitial or cpm |
affiliate |
Affiliates | Medium is affiliate |
referral, link |
Referral | Medium is referral, app or link |
sms |
SMS | Source or medium exactly matches sms |
audio |
Audio | Medium exactly matches audio |
qr, print, whatsapp |
Unassigned | No default rule matches |
Note the last row: an unrecognised medium is not an error, it simply goes to Unassigned. If you need channels such as QR or WhatsApp, create a custom channel group. Likewise, paid on a source GA4 does not recognise (a niche B2B directory, say) will not become Paid Search or Paid Social.
Should you use auto-tagging or manual UTMs for Google Ads?
For Google Ads, keep auto-tagging on. Google Ads Help on auto-tagging explains that it adds a GCLID (Google Click Identifier) to the landing URL, notes that some browsers require auto-tagging to track conversions, and says that in GA4 auto-tagging is prioritised over manual tagging. Google Analytics Help adds that manual utm_content and utm_term still populate the manual ad content and term dimensions.
So do not use manual source and medium as a replacement for GCLID. Confirm the GCLID survives redirects to the final page, and click a live ad to check your site does not reject unknown parameters, which Google warns some sites do. Every other platform needs manual UTMs. Our Google Tag Manager guide covers how to keep the tags that read these values firing in the right order.
How do you tag Meta and LinkedIn ads with dynamic parameters?
Both platforms let you add URL parameters and fill some values dynamically at click time, such as campaign or ad names and IDs. Copy the current syntax from Meta’s help article on URL parameters and LinkedIn’s help article on URL tracking parameters in Campaign Manager.
- Keep source and medium static: hard-code utm_source (facebook, linkedin) and utm_medium=paid_social; use dynamic values for campaign, content and ID.
- Name platform campaigns in your convention: a dynamic name like “Q4 Demo – India” arrives in GA4 with capitals and spaces. Name campaigns in lowercase or insert IDs and map names in your sheet.
- Split placements in utm_content, not utm_source, if Meta serves one ad across Facebook and Instagram.
See also our guides on Meta Ads for lead generation and sales and LinkedIn Ads for B2B.
How do you build a UTM naming convention that lasts?
A naming convention is a one-page rulebook that makes every value predictable. Bargaon’s suggested starting rules:
1. Lowercase everything
What: every UTM value is lowercase, no exceptions. Why: GA4 treats LinkedIn, linkedin and Linkedin as three sources, which splits reports. How: build links in a sheet that applies LOWER() to every field.
2. Choose one separator and ban spaces
What: use underscores inside values and hyphens only where a platform name contains one. Why: spaces become %20 or + inconsistently. How: a SUBSTITUTE() step turns spaces into underscores.
3. Fix a campaign taxonomy
What: a fixed order of elements, e.g. yyyyqn_offer_market_audience giving 2026q4_demo_in_cfo. Why: ordered names sort well and can be split into columns in Looker Studio dashboards. How: a dropdown per element; free text only in utm_content.
4. Lock the medium list
What: a short approved list, e.g. cpc, paid_social, social, email, display, affiliate, referral, sms, plus any custom ones mapped in a custom channel group. Why: medium decides the channel. How: utm_medium is a dropdown; nobody types it.
5. Never put personal data in UTMs
What: no email addresses, phone numbers or names in any parameter. Why: URLs are logged and shared; Zoho Forms’ UTM documentation warns its stored tracking data is not encrypted. How: use IDs if you need to join records.
What should a UTM governance sheet contain?
A governance sheet is a shared spreadsheet (Google Sheets or Excel is enough) where every tagged link is created and logged. Suggested columns:
| Column | Purpose | Example |
|---|---|---|
| Campaign ID | Unique key, also used as utm_id | c0142 |
| Owner | Who is accountable for the link | Demand gen lead |
| Launch / end date | Retire stale links | 2026-11-04 / 2026-12-15 |
| Destination URL | Clean URL without parameters | https://example.com/demo/ |
| utm_source / utm_medium | Dropdowns from the approved lists | linkedin / paid_social |
| utm_campaign / utm_content / utm_term | Built from taxonomy dropdowns | 2026q4_demo_in_cfo / video_a |
| Final URL (formula) | Concatenated, lowercased, encoded link | Auto-generated |
| Short link / QR ID | Where it is shortened or printed | QR batch 3 |
| Expected GA4 channel | Channel the medium should map to | Paid Social |
| QA status and date | Clicked and verified in GA4 real-time | Passed, 2026-11-04 |
Give the sheet one owner. Agencies and sales can request links but should not invent their own. It feeds the measurement plan in our marketing analytics and attribution guide.
Which tagging approach does this link need?
No UTMs. Track clicks as events instead.
Keep auto-tagging (GCLID); optionally add utm_content or utm_term.
Static source and medium; dynamic campaign, content and ID.
Tag fully, redirect via a short link, map custom mediums.
Build in the sheet, click-test, confirm in GA4 real-time.
Why must internal links never use UTMs?
UTMs on homepage banners or links between your own pages damage your own data. Google explains that a campaign value arriving mid-session does not start a new session but is tied to the events that follow, so a sign-up from a paid LinkedIn visitor who clicked a tagged banner can be credited to a fake “homepage” campaign.
Track internal promotions as GA4 events through Tag Manager (or ecommerce promotion events in a store), and use cross-domain measurement, not UTMs, between your own domains.
How do you tag QR codes, WhatsApp and other offline campaigns?
Offline and messaging traffic often arrives with no referrer, so untagged it shows as Direct.
- QR codes on print, packaging and events: point the code at a short link that redirects to the tagged URL (utm_source=expo_mumbai, utm_medium=qr mapped in a custom channel group). You can change the destination without reprinting.
- WhatsApp broadcasts and status: utm_source=whatsapp with medium social (Organic Social) or a custom Messaging channel; utm_content separates lists or templates. See our email and WhatsApp guide for opt-in rules.
- SMS and audio: utm_medium=sms and utm_medium=audio map to the SMS and Audio channels; use a vanity path for spoken URLs.
Shorteners and redirects: any shortener works if it keeps the full query string. Test each short link and confirm source and medium in GA4 real-time. Zoho Forms warns its tracking will not work as intended if a form is embedded using a shortened URL.
How do you get UTMs into HubSpot or Zoho CRM?
GA4 shows which campaigns produce key events; your CRM shows which produce revenue. Capture UTMs on form submission to link them.
- HubSpot: HubSpot’s knowledge base confirms hidden form fields can capture query string values, including UTM values, into contact properties. Create text properties for first- and latest-touch source, medium and campaign; a required field cannot be hidden. HubSpot’s own original source properties use its own classification, so keep both. See our HubSpot CRM guide.
- Zoho: Zoho Forms’ UTM tracking captures UTM parameters and custom ones such as gclid via a footer tracking code; for Zoho CRM web forms, map hidden fields to custom lead fields (see our Zoho CRM guide).
- Persist the first touch: a small GTM script can store the first UTM set in first-party storage and write it to hidden fields on any later form. Check it against your consent setup.
Our form optimisation guide covers adding hidden fields without slowing forms.
How should you report on UTM-tagged campaigns?
In GA4, use Traffic acquisition (session source / medium, session campaign) and User acquisition (first-user dimensions), adding manual ad content as a secondary dimension for creative detail. In Looker Studio, split campaigns by taxonomy and add an Unassigned / (not set) check tile. Pick metrics from our marketing KPIs guide; qualified pipeline by campaign beats sessions.
What are the most common UTM mistakes?
- Mixed case: Facebook, facebook and FB as three sources; clean history with a Looker Studio CASE formula.
- Invented mediums: newsletter or whatsapp_blast landing in Unassigned.
- UTMs on internal links overwriting real attribution.
- Partial tagging: Google recommends setting all relevant parameters.
- Redirects that drop the query string.
- No CRM capture, so sales cannot see where a lead came from.
What does a UTM clean-up look like in practice?
Hypothetical example, not a client case. A Bengaluru B2B SaaS firm runs LinkedIn ads, a newsletter, Meta retargeting and an expo stand. GA4 shows sources Linkedin and LI, mediums Paid and newsletter, and a large Unassigned row.
The team builds a governance sheet, fixes mediums to paid_social, email and qr, maps qr to an “Events and print” custom channel, replaces banner UTMs with a promo_click event and adds hidden UTM fields in HubSpot. New data then shows one source per platform, the newsletter under Email, and expo leads in the CRM with their source. History is not rewritten, so the change date is annotated in the dashboard.
What is a practical 30-day plan for UTM governance?
| Week | Focus | Actions |
|---|---|---|
| Week 1 | Audit | Export 90 days of source / medium and campaign; list variants; find internal UTMs; confirm auto-tagging. |
| Week 2 | Convention and sheet | Agree rules, medium list and taxonomy; build the sheet; name an owner. |
| Week 3 | Fix live links | Retag ads, emails, bios, QR and partner links; strip internal UTMs; add custom channel groups. |
| Week 4 | Capture and report | Add hidden UTM fields and test CRM capture; build the Unassigned check; brief agencies; set a monthly review. |
After day 30, every link comes from the sheet and QA happens before launch. For help connecting tracking to pipeline, Bargaon’s demand generation service covers campaign planning and measurement together.
Which related guides should you read next?
- GA4 Setup set up the property, key events and data streams that UTMs feed.
- Google Tag Manager fire the tags and internal-click events that replace internal UTMs.
- Marketing Analytics and Attribution turn clean campaign data into attribution decisions.
- Marketing Dashboards in Looker Studio report campaigns by taxonomy and watch Unassigned.
- Marketing KPIs by Funnel Stage choose the metrics each campaign should be judged on.
Frequently asked questions
Are UTM parameters case sensitive in GA4?
Yes. Google states that utm_source=google is different from utm_source=Google. Channel rules ignore case, but source and campaign reports still split, so use lowercase.
Do UTM parameters affect SEO?
Keep them off internal links so crawlers do not find parameter versions of your pages. On external campaign links they are normal, and a canonical tag points search engines to the clean URL.
Should I add UTMs to Google Ads if auto-tagging is on?
Not for source and medium; Google says GA4 prioritises auto-tagging. You can add utm_content or utm_term for extra detail.
Why is my traffic showing as Unassigned in GA4?
Usually because the medium or source matches no default channel rule, such as whatsapp or qr. Use an approved medium or a custom channel group.
What is utm_id used for?
Google describes it as a campaign ID for a specific campaign or promotion. It gives a stable key when names change and helps campaign data imports match your URLs.
Do I need a paid UTM tool?
No. A shared spreadsheet with dropdowns, a URL formula and a QA column is enough for most SMB teams. The convention and the owner matter more than the tool.
Sources and further reading
- Google Analytics Help: URL builders
- Google Analytics Help: Default channel group
- Google Analytics Help: Manual tagging and auto-tagging
- Google Analytics Help: Campaigns and traffic sources
- Google Analytics Help: Avoiding unassigned traffic
- Google Analytics Help: Custom channel groups
- Google Analytics Help: Import campaign data
- Google Ads Help: About auto-tagging
- Meta Business Help: URL parameters
- LinkedIn Help: URL tracking parameters
- HubSpot Knowledge Base: Hidden form fields
- Zoho Forms Help: UTM tracking overview
- Gartner (June 2025): Digital marketing spend survey
- Gartner (May 2025): 2025 CMO Spend Survey
- Editorial note: the naming convention, governance sheet, UTM decision path, illustrative chart, worked example and 30-day plan are Bargaon editorial models, not research or client results.
Want campaign tracking that connects to pipeline? Bargaon’s demand generation service helps SMB, B2B and D2C teams plan campaigns, set up consistent tracking and report on what actually produces qualified leads.