UTM Naming Conventions for GA4: Taxonomy, Standards & Channel Groupings
Master UTM naming conventions for Google Analytics 4. Structure clean taxonomies, align with GA4 Default Channel Groupings, and prevent unassigned campaign traffic.
A standardized UTM naming convention uses strict lowercase strings, separates words with hyphens or underscores, and selects utm_medium values that strictly align with Google Analytics 4 (GA4) Default Channel Grouping rules.
Inconsistent casing (such as Facebook vs. facebook), raw spaces, and unrecognized custom medium names split analytics reports across multiple rows and push marketing traffic into GA4's 'Unassigned' channel group. Establishing an organization-wide UTM taxonomy ensures clean attribution across paid ads, emails, social posts, and offline QR codes.
Generate GA4-compliant campaign tracking URLs with automatic lowercasing, custom query tags, and 1-click QR code bridging.
1. What UTM Parameters Are (and When to Use Them)
UTM (Urchin Tracking Module) parameters are standardized query tags appended to destination URLs. Originally introduced by Urchin Software Corporation and later adopted as the web analytics industry standard by Google, these key-value pairs allow analytics tools—including Google Analytics 4 (GA4), Mixpanel, and Plausible—to identify where incoming traffic originated and which specific marketing effort drove the visit.
When an external visitor clicks a tagged link or scans a print QR code, your web server serves the requested page, and the analytics client script reads the query string to populate campaign attribution dimensions.
- When to Use UTM Parameters: Use UTM parameters exclusively on external marketing touchpoints you control. This includes paid search campaigns, paid social advertisements, organic social bio links, email newsletters, influencer partnerships, affiliate links, and offline print collateral (such as QR codes on flyers, posters, and product packaging).
- When NOT to Use UTM Parameters: Never use UTM parameters on internal website navigation (such as homepage hero banners, blog sidebars, or footer links), in canonical URLs, or on standard web links across third-party websites you do not manage (which already pass standard HTTP Referrer headers).
2. The 6 Core GA4 Campaign Parameters Explained
Google Analytics 4 supports six primary campaign parameters in the query string. Understanding the distinct role of each parameter prevents teams from conflating sources with channels:
While GA4 also supports supplementary tags like utm_source_platform, utm_creative_format, and utm_marketing_tactic, the core six parameters in the table below form the operational backbone of digital marketing attribution.
| Parameter | GA4 Role & Dimension | Required Status | Compliant Example |
|---|---|---|---|
| utm_source | Identifies the specific platform, vendor, or referrer sending traffic (source) | Required for campaign tracking | google, linkedin, newsletter, event-booth |
| utm_medium | Identifies the high-level marketing channel or delivery mechanism (medium) | Required for GA4 channel grouping | cpc, email, paid_social, social, qr_code |
| utm_campaign | Identifies the overarching marketing initiative, product launch, or promo (campaign) | Recommended | 2026-q2-spring-sale, saas-launch-v2 |
| utm_id | Identifies the campaign identifier code for data imports (campaign_id) | Optional (Used for ad platform joins) | camp-84920, cid-9012 |
| utm_content | Differentiates creative variants, ad formats, CTA placements, or flyer types (content) | Optional (Crucial for A/B testing) | hero-cta-blue, a-b-split-v2, table-tent-a5 |
| utm_term | Records the paid search keyword or targeted audience segment (term) | Optional (Search ads & audience tags) | pdf-converter-mac, enterprise-security |
3. GA4 Default Channel Grouping Alignment Rules
Google Analytics 4 uses automated system regex rules to bucket incoming sessions into Default Channel Groups. These rules evaluate utm_medium and utm_source. If your tagged values fail to match Google's predefined system patterns, traffic is relegated to the Unassigned channel group.
Importantly, several channels require matching *both* a specific medium regex and a recognized platform list. For example, utm_medium=cpc will only be classified into Paid Search if the utm_source matches a recognized search engine (such as Google or Bing); if the source is an unrecognized network, GA4 buckets the traffic into Paid Other.
| Target GA4 Channel | Required utm_medium Expression | Source Dependency | Fallback if Source Unmatched | Compliant Example URL |
|---|---|---|---|---|
| Paid Search | ^(.*cp.*|ppc|paid.*)$ | Source matches recognized search engine list | Categorized as Paid Other | ?utm_source=google&utm_medium=cpc&utm_campaign=brand |
| Paid Social | ^(.*cp.*|ppc|paid.*)$ | Source matches recognized social network list | Categorized as Paid Other | ?utm_source=linkedin&utm_medium=paid_social&utm_campaign=leadgen |
| Paid Other | ^(.*cp.*|ppc|paid.*)$ | Source does not match search, social, shopping, or video | N/A (Standard catch-all for paid mediums) | ?utm_source=newsletter_vendor&utm_medium=cpc&utm_campaign=promo |
| Organic Social | ^(social|social-network|social-media|sm|community)$ | Or source matches recognized social platform list | Categorized as Referral or Unassigned | ?utm_source=reddit&utm_medium=social&utm_campaign=community |
| ^(email|e-mail|e_mail|e mail)$ | Any source | Categorized as Unassigned if medium mistyped | ?utm_source=newsletter&utm_medium=email&utm_campaign=weekly | |
| Affiliates | ^(affiliate|affiliates)$ | Any source | Categorized as Unassigned if medium mistyped | ?utm_source=partner_name&utm_medium=affiliate |
| Display | ^(display|cpm|banner)$ | Any source | Categorized as Unassigned if medium mistyped | ?utm_source=adroll&utm_medium=display&utm_campaign=retargeting |
| Offline Print & QR Codes | qr_code, print, flyer (Custom) | Any source | Categorized as Unassigned by default | ?utm_source=event_booth&utm_medium=qr_code&utm_campaign=tech-expo |
Google's Default Channel Grouping rules do not natively recognize qr_code, print, or offline. In default GA4 setups, traffic tagged with utm_medium=qr_code is placed in Unassigned. To report offline traffic cleanly, navigate to Admin > Data display > Channel groups in GA4, and add a custom channel named 'QR Codes / Print' with the rule: Medium matches regex ^(qr_code|print|offline)$.
4. The 5 Rules of UTM Governance
Data discipline is essential for reliable reporting. Adhering to five foundational governance rules prevents campaign reporting chaos:
- Rule 1: Always Enforce Lowercase: GA4 dimensions are strictly case-sensitive. If campaign links use
utm_source=Facebook,utm_source=facebook, andutm_source=FB, GA4 generates three distinct reporting rows, scattering your conversion data. Standardize on lowercase for all tags. Modifyle's Free UTM Code Maker & URL Builder automatically enforces lowercase by default. - Rule 2: Standardize on a Single Word Separator: Raw spaces in query strings produce unsightly encoded characters (
%20or+). Standardize organization-wide on hyphens (spring-sale-2026) or underscores (spring_sale_2026), and never mix camelCase (springSale) with delimited strings. - Rule 3: Never Include Personally Identifiable Information (PII): Appending email addresses, full names, account numbers, or phone numbers in UTM parameters directly violates Google Analytics Terms of Service and data protection regulations (GDPR and CCPA). Google can suspend analytics properties or permanently purge historical tables that ingest PII.
- Rule 4: Avoid Tagging Internal Site Navigation: Attaching UTM parameters to internal banners, product recommendation widgets, or footer links does not immediately restart an active session within GA4's standard 30-minute inactivity window, but it updates event-scoped campaign dimensions (
source,medium,campaign) on subsequent interaction events. Under last-click attribution models and event-scoped conversion reports, this can cause conversions to be credited to your own internal banner rather than the external marketing channel that acquired the visitor. Furthermore, if a visitor is inactive for more than 30 minutes before clicking an internal UTM link, their next session will record the internal campaign as the session acquisition source. To measure clicks and impressions on internal banners without distorting acquisition data, implement GA4's dedicated ecommerce promotion events (view_promotionandselect_promotion) with custom parameters likepromotion_idandcreative_name. - Rule 5: Keep Offline QR Code URLs Compact: Appending multiple verbose UTM tags lengthens your URL significantly. Long destination strings force QR code generators to create dense matrix grids with smaller module dots, which budget smartphone lenses struggle to scan in low light. When printing QR codes on physical collateral, use Modifyle's integrated short-link bridge (
/s/[code]) to maintain a clean, fast-scanning code.
5. Real-World UTM Campaign Examples Across 5 Channels
Here is how standardized UTM naming applies to common real-world marketing channels:
Email Newsletter Product Announcement
https://example.com/pricing?utm_source=newsletter&utm_medium=email&utm_campaign=2026-q2-product-update&utm_content=hero-cta-button — Identifies the weekly newsletter as the source, email as the medium, and distinguishes the hero button from inline text links.
Google Search Ads (Paid Search)
https://example.com/tools/pdf/compress?utm_source=google&utm_medium=cpc&utm_campaign=search-compress-exact&utm_term=compress-pdf-100kb&utm_content=ad-copy-v1 — Aligns with GA4 Paid Search channel rules and captures the keyword and ad copy version.
LinkedIn Sponsored Content (Paid Social)
https://example.com/whitepaper?utm_source=linkedin&utm_medium=paid_social&utm_campaign=2026-security-report&utm_content=carousel-infographic — Uses the recognized paid_social medium and platform source to guarantee correct Paid Social channel classification.
Organic Social Bio Link (Instagram / Threads)
https://example.com/?utm_source=instagram&utm_medium=social&utm_campaign=bio-link&utm_content=profile-link — Uses the standard social medium to prevent organic social visits from collapsing into generic referral traffic.
Offline Event Flyer & Scannable Print QR Code
https://example.com/demo?utm_source=event-booth&utm_medium=qr_code&utm_campaign=tech-expo-2026&utm_content=flyer-back-a5 — Separates physical event collateral from digital visits, allowing offline scan analysis when paired with custom channel grouping.
6. Good vs. Bad Campaign Names (Comparative Table)
Small formatting oversights create long-term reporting headaches. Review the differences between fragmented UTM strings and well-governed campaign URLs:
| Problematic UTM String | Primary Flaw | Corrected UTM String | Why It Works |
|---|---|---|---|
| ?utm_source=Google Ads&utm_medium=CPC&utm_campaign=Spring Sale 2026 | Spaces URL-encode into %20; uppercase splits source and medium into duplicate rows. | ?utm_source=google&utm_medium=cpc&utm_campaign=2026-spring-sale | Strict lowercase, no spaces, and hyphens prevent reporting fragmentation. |
| ?utm_source=facebook&utm_medium=post&utm_campaign=summer&utm_content=john.doe@gmail.com | 'post' is not a recognized GA4 medium (falls into Unassigned); embeds PII (email address). | ?utm_source=meta&utm_medium=social&utm_campaign=2026-summer-promo&utm_content=carousel-v1 | Standard medium, clear campaign identifier, and zero PII protect privacy compliance. |
| ?utm_source=homepage_banner&utm_medium=internal&utm_campaign=black_friday | Internal UTM tag updates event-scoped campaign dimensions mid-session, which can divert last-click conversion credit away from external acquisition channels. | Configure GA4 recommended event: select_promotion with promotion_id: 'black-friday-banner' | Preserves original acquisition channel attribution while capturing internal promotion clicks and impressions. |
| ?utm_source=qr&utm_medium=flyer&utm_campaign=conf | Vague source and medium; does not indicate physical event location and lands in Unassigned. | ?utm_source=ces-2026&utm_medium=qr_code&utm_campaign=hardware-launch&utm_content=badge-lanyard | Specific location context and standardized medium enable clean grouping and filtering. |
7. The 6-Point Pre-Launch Governance Checklist
Before publishing any campaign link, creating marketing collateral, or printing QR codes, verify your parameters against this 6-point checklist:
- 1. Lowercase Check: Are all parameter keys and values strictly lowercase?
- 2. Delimiter Consistency: Did you replace all spaces with hyphens or underscores?
- 3. GA4 Medium Alignment: Does
utm_mediummatch a standard value (cpc,email,paid_social,social,affiliate) or have you configured a Custom Channel Group for custom mediums (qr_code)? - 4. Zero PII: Have you verified that no user email addresses, names, or identifiable tokens are present in any parameter value?
- 5. No Internal Links: Is this link strictly for external distribution, with zero internal site navigation links tagged?
- 6. Destination Validation: Does the landing page resolve with a 200 OK status without stripping query parameters during 301/302 redirects?
8. GA4 Reporting & Attribution Nuances (What UTMs Can and Cannot Do)
UTM parameters provide essential campaign metadata, but understanding how GA4 processes attribution prevents unrealistic expectations:
- Scope Matters (User vs. Session vs. Event): In GA4 reports, different scopes answer different questions:
First user source / mediumidentifies how a user was originally acquired (persisting across returning visits),Session source / mediumrecords the campaign active when a specific session began, and event-scopedSource / mediumrecords campaign values for individual interaction events. Misinterpreting these scopes leads to apparent reporting discrepancies. - Attribution Models Do Not Behave Identically: Conversion credit varies across reporting surfaces. While GA4's default Data-Driven Attribution model in Advertising reports distributes conversion credit algorithmically across eligible touchpoints, standard Exploration reports and last-click models assign conversion credit exclusively to the last non-direct touchpoint.
- Browser Privacy & Storage Limits: Standard UTM parameters (
utm_source,utm_medium,utm_campaign) are public query tags that browsers do not strip during normal navigation (unlike proprietary click IDs such asgclidorfbclid, which may be removed in private browsing modes). However, browser privacy protections (such as Apple Safari's ITP) can limit client-side cookie lifespans to 1 to 7 days when incoming URLs contain query strings, which can truncate longer multi-touch attribution lookback windows. - Ad Blockers and Cookie Consent: Visitors running network-level content blockers or visitors who decline analytics tracking on your cookie consent banner will not register campaign sessions, causing their actions to be omitted or modeled via GA4's consent mode.
- Cross-Device Journey Gaps: If a user clicks a campaign ad on their mobile phone and later completes a purchase on a desktop browser, the desktop session will appear as Direct traffic unless you have implemented unified user tracking via GA4 User-ID.
Use the Modifyle Free UTM Builder to format clean, lowercase campaign parameters with instant preview and a 1-click bridge to our QR Code Studio.
Frequently Asked Questions
Why does my campaign traffic show up as 'Unassigned' in GA4?
Is GA4 case-sensitive when processing UTM parameters?
What is the difference between User-scoped, Session-scoped, and Event-scoped UTM dimensions?
Why should UTM parameters never be used on internal links?
How does utm_medium=qr_code get categorized in Google Analytics 4?
Do UTM parameters alone guarantee accurate campaign attribution?
Related Technical Guides
View all guidesIntroductory guide to how UTM query parameters work and how to construct tracking URLs.
Step-by-step tutorial on encoding campaign URLs into scannable QR codes.
Learn how short redirect links simplify QR matrices for print collateral.