The Traffic Acquisition report is one of the most-used reports in GA4. It tells you which channels are driving sessions, engagement, and conversions. Most advertisers read it regularly and use it to justify budget decisions.
Most advertisers also have no idea how much of that report is wrong.
GA4’s default channel groupings use a set of rules to classify every session into a channel: Organic Search, Paid Search, Organic Social, Email, Direct, and so on. When those rules misclassify traffic — and they do, routinely — every report that uses channel grouping as a dimension inherits the error. Budget allocation decisions, ROAS calculations, and attribution analysis all get distorted at the source.
This post covers how GA4 assigns channels, the most common miscategorizations, and how to build custom channel groupings that accurately represent your traffic.
How GA4’s Default Channel Grouping Works
GA4 assigns each session to a channel based on a combination of three signals:
- Session source: Where the traffic came from (google, facebook.com, newsletter.yoursite.com, (direct))
- Session medium: How it was classified (cpc, organic, email, referral, (none))
- Session campaign: The UTM campaign name, if present
GA4 applies a set of matching rules in order. The first rule that matches wins. The default rules define channels like:
- Paid Search: medium exactly matches “cpc” OR “ppc” AND source matches a search engine
- Organic Search: medium exactly matches “organic” AND source matches a search engine
- Email: medium contains “email” OR “e-mail” OR “e_mail” OR “newsletter”
- Paid Social: source matches a social platform AND medium matches paid social indicators
- Organic Social: source matches a social platform AND medium does not indicate paid
- Direct: source is “(direct)” AND medium is “(none)”
- Referral: medium is “referral”
The critical dependency: the accuracy of channel classification is entirely dependent on the accuracy of UTM parameters. If UTM parameters are missing, inconsistent, or wrong, the channel assignment will be wrong — and there is nothing GA4 can do about it.
The Most Common Miscategorizations
1. Branded Paid Search Lumped with Generic Paid Search
GA4’s default Paid Search channel includes all traffic with medium = cpc — both branded keyword campaigns (“your brand name”) and generic keyword campaigns (“buy running shoes”). These perform completely differently: branded typically has 3-5x higher conversion rates and lower CPAs.
When they are grouped together in the default “Paid Search” channel, your channel-level metrics are an average of two very different traffic types. Branded performance inflates the appearance of generic campaign performance. Generic performance drags down what looks like branded performance.
You cannot see this in the default grouping. You need a custom channel grouping that separates them.
2. Direct Inflation from Missing UTMs
The Direct channel is supposed to represent users who typed your URL directly, came from bookmarks, or arrived through a source GA4 could not identify. In practice, it is also a dumping ground for traffic that should have been tagged with UTMs but was not.
Common sources of inflated Direct traffic:
- Email campaigns sent without UTM parameters (or with UTM parameters that got stripped by the email client)
- Dark social sharing (links shared in messaging apps like WhatsApp or Slack that strip referrer information)
- Internal redirects that lose the referrer
- Mobile apps that do not pass referrer information
- PDF links clicked from a document the user downloaded
If your Direct channel is growing unexpectedly or is disproportionately large compared to your known traffic sources, UTM coverage is likely the problem.
3. Referral Spam Bloating Referral Traffic
GA4 receives hits from bots and spam crawlers that appear as referral traffic from unrecognized domains. These inflate session counts and engagement metrics in the Referral channel and can distort source-level analysis.
GA4’s spam filtering catches most of this, but some slips through. Check your Referral traffic in the Traffic Acquisition report and look for sources that make no sense for your site (unrelated foreign domains, obvious spam domains). If they appear repeatedly, they are likely bot traffic.
4. Google Ads Traffic Appearing as Organic
This happens when auto-tagging is disabled and UTM parameters are not in place. Without the GCLID (from auto-tagging) or utm_medium=cpc (from manual UTMs), GA4 cannot identify the session as paid search. The session source shows as “google” and medium shows as “(none)” — which GA4 classifies as Direct or Unassigned, not Paid Search.
If your Google Ads spend is significant but your Paid Search channel in GA4 looks smaller than expected, check auto-tagging status and UTM coverage on your ads.
5. Performance Max Classified Incorrectly
Performance Max runs across Search, Shopping, Display, YouTube, and Discover simultaneously. The traffic it drives can arrive with different source/medium combinations depending on the placement. Shopping placements may show as “google / cpc” the same as Search. Display placements may show as a display medium. YouTube views may arrive under youtube.com.
This means PMax traffic is often spread across multiple channels in GA4’s default grouping — Paid Search, Paid Shopping, Paid Video — rather than attributed to a single PMax campaign view. Custom channel groupings can create a dedicated “Performance Max” channel using campaign name matching (if your PMax campaigns follow a consistent naming convention).
Auditing Your Current Channel Groupings
Before building custom groupings, audit what you have.
Check the distribution of Direct traffic:
In the Traffic Acquisition report, look at the Direct channel’s share of total sessions. For most businesses, Direct should represent 15-30% of sessions. If it is above 40%, you likely have UTM gaps or referrer-stripping issues.
Check for Unassigned traffic:
GA4 has a catch-all “Unassigned” channel for traffic that does not match any rule. Any traffic appearing here is a data quality problem. Check which sources are in Unassigned (add Source/Medium as a secondary dimension in the Traffic Acquisition report and filter for Channel group = Unassigned).
Check your Paid Search vs. Organic Search ratio:
If the Paid Search / Organic Search ratio in GA4 looks inconsistent with your actual spend vs. organic visibility ratio, something is misclassified. A sudden spike in Organic Search, for example, often means paid traffic is being attributed incorrectly.
Verify Google Ads is linked and auto-tagging is on:
Admin > Google Ads Links. Auto-tagging is in Google Ads settings: Admin > Account settings > Auto-tagging.
Building Custom Channel Groupings in GA4
Admin > Data display > Channel groups > Create new channel group.
GA4 presents a drag-and-drop rule builder. Each channel definition uses AND/OR conditions combining source, medium, and campaign parameters.
Step 1: Create a “Brand Paid Search” channel
This separates branded keyword traffic from generic. Requires that your branded campaigns follow a consistent naming convention in Google Ads (e.g., campaign names start with “Brand” or contain “[Brand]”).
Rule conditions:
- Medium exactly matches “cpc”
- AND source contains “google” OR “bing” OR “yahoo”
- AND campaign contains “brand” (case-insensitive, to match your naming convention)
Place this channel above “Paid Search” in the priority order so it matches first.
Step 2: Create a “Generic Paid Search” channel
Everything else that is paid search:
- Medium exactly matches “cpc”
- AND source contains “google” OR “bing” OR “yahoo”
- AND campaign does NOT contain “brand”
Or simply relabel what the default “Paid Search” channel captures, since Brand Paid Search now breaks branded traffic out separately.
Step 3: Create a “Performance Max” channel (if applicable)
- Medium exactly matches “cpc”
- AND campaign name contains your PMax naming convention (e.g., “pmax” or “performance max”)
Step 4: Fix Email classification
The default email rules catch common variations, but custom email platforms sometimes use non-standard mediums. Check what medium values your email tool sends by looking at your Email channel sessions and their source/medium. Add any non-standard medium values to the Email channel rule.
Common non-standard email mediums that get misclassified: “marketing”, “campaign”, “broadcast”, “bulk”. Add these to your Email channel conditions.
Step 5: Separate Paid Social by platform (optional)
The default Paid Social channel groups all paid social platforms together. If you spend significantly on multiple platforms (Meta, TikTok, LinkedIn, Pinterest), create separate channels per platform using source matching. This makes the Traffic Acquisition report a direct read of per-platform performance without needing secondary dimensions.
Custom Channel Groups vs. Default Channel Groups
Custom channel groups do not replace the default — they are an additional grouping option. In any standard report, you can switch between channel group definitions using the selector in the report settings.
The default channel group is the baseline. Your custom group is the accurate one. Use the custom group for all operational reporting once it is set up.
Custom channel groups also apply to Explorations, audience definitions, and segment conditions — any place in GA4 where channel grouping is a dimension.
One important limitation: custom channel groups are not retroactive in the same way you might expect. Because GA4 applies channel groupings at query time (not at data collection time), a new custom channel group applies to all historical data immediately. This is useful — you do not need to wait for new data to use your custom grouping.
Setting Custom Groups as the Default
Admin > Data display > Channel groups. Find your custom group and click the three-dot menu > Set as default.
Once set as default, your custom channel grouping is what appears in all reports by default. The built-in Default Channel Group is still available as an alternative view.
UTM Governance as the Foundation
Custom channel groupings can compensate for some UTM inconsistency, but they cannot fix fundamentally missing or wrong UTM parameters. The underlying issue is UTM governance.
A basic UTM governance standard:
- Every paid campaign link is tagged with
utm_source,utm_medium, andutm_campaignat minimum - Mediums follow a fixed controlled vocabulary:
cpcfor paid search and shopping,paid-socialfor paid social,emailfor email campaigns,affiliatefor affiliate - Campaign names follow a consistent format so channel grouping rules can use campaign name matching reliably
- UTM parameters are documented in a shared sheet that anyone adding a campaign link must update
Without consistent UTMs, no channel grouping — default or custom — will produce accurate data.
Key Takeaway
GA4’s default channel groupings are a reasonable approximation for sites with perfect UTM hygiene and simple traffic mixes. For any real-world site — with paid campaigns, email marketing, and the occasional UTM gap — the defaults will misclassify a meaningful portion of traffic.
The fix is two-part: audit your UTM coverage and clean up the gaps, then build custom channel groupings that separate branded from generic paid search, correct email classification, and catch your specific sources that fall through to Direct or Unassigned.
Every report you build on top of channel data is only as accurate as the channel classification underneath it. Fix the classification, and every downstream decision gets cleaner.
Related Posts
GA4 Reporting Identity: Why Your User Counts Are Wrong and How to Fix It
11 min read
GA4 Cohort Analysis: How to Measure Retention and Campaign Quality Over Time
11 min read
GA4 Predictive Audiences: How to Use Purchase Probability and Churn Signals in Google Ads
12 min read
Need Help With Your Google Ads?
I help e-commerce brands scale profitably with data-driven PPC strategies.
Get In Touch