Naming conventions that actually work in GA4
The five rules below are what the GA4 Default Channel Group expects. Using them means your sessions land in the right channel bucket automatically — no channel-group custom rules, no drift, no quarterly clean-up project.
Paid social (Meta, LinkedIn, TikTok, Reddit, Pinterest, Snapchat)
utm_source= platform name, lowercase.facebook,linkedin,tiktok,reddit,pinterest,snapchat.utm_medium=paid_social(notsocial, notcpc). This is the single highest-impact rule on the page — medium = social lands in Unassigned, medium = paid_social lands in Paid Social correctly.utm_campaign=yyyy-mm_objective_creative, e.g.2026-04_awareness_founder-story.utm_content= creative variant identifier when A/B testing; omit otherwise.
Email (newsletter, lifecycle, transactional promos)
utm_source= mailer or list name.newsletter,klaviyo,mailchimp,lifecycle.utm_medium=email. Always.utm_campaign= campaign identifier. Useyyyy-mm_themeso send analytics line up with calendar.utm_content= link position when the same URL appears more than once in a send (hero-cta,footer).
Referral (partner links, affiliates, podcast sponsorships)
utm_source= partner domain, lowercase, nowww..stripe.com,shopify.com.utm_medium=referralfor organic partnerships,affiliatefor paid.utm_campaign= the specific placement or sponsorship window, e.g.2026-q2_stripe-integration-guide.
Paid search (Meta Search, Bing, Yandex, DuckDuckGo)
utm_source= search engine.bing,yandex,duckduckgo.utm_medium=cpc. GA4 Default Channel Group rules putcpcinto Paid Search.- Google Ads: do NOT use UTMs. Turn on auto-tagging and let
gcliddo its job.
Organic social (unpaid posts on your own channels)
utm_source= platform.linkedin,twitter,threads,mastodon,bluesky.utm_medium=organic_social. Without this, the session will probably land in Unassigned because GA4 can't tell an unpaid LinkedIn post from a paid one just from the referrer.
The five casing rules that break every audit
- Lowercase everything.
Googleandgoogleare different sources in GA4. Pick one shape and enforce it. - Underscores, not hyphens or spaces.
paid_social, notpaid-socialand neverPaid Social. - No trailing parameters. Strip your
?fbclidand?gclidwhen hand-pasting URLs into the builder — they override. - Never stack UTMs on Google Ads auto-tagged URLs. It overrides gclid and breaks Smart Bidding.
- Test in Incognito with Realtime open before every new campaign launches. Ninety seconds of verification prevents a week of drift.
From one URL to your whole property
This builder validates one URL at a time. For a full property-level audit, our free GA4 Audit Engine runs 58 checks, including a Channel Grouping chapter that reports every casing inconsistency, missing-medium bucket, Unassigned contributor, and Default Channel Group gap across the last 30 days. For a signup-free taste of the output, browse the sample audit.