GA4 channel groupings are rule sets that sort every session into a channel — Organic Search, Paid Search, Direct, Referral, Email and around twenty more — based on the source, medium and campaign values attached to it. Google maintains the default definitions, and they are stricter than most people assume. Traffic that does not match a rule exactly does not get a sensible home; it gets Unassigned.
Understanding the rules is the difference between fixing your channel report and manually reallocating rows in a spreadsheet every month.
How GA4 decides a channel
Each session carries a source, a medium, and often a campaign name and campaign ID. GA4 evaluates those values against an ordered list of definitions and assigns the first match. The inputs come from three places: UTM parameters on the landing URL, the referring domain when no UTMs are present, and auto-tagging from linked Google Ads and Merchant Center accounts.
Two properties of the system cause most of the confusion. The rules are evaluated in a fixed order, so a session matching several definitions gets whichever comes first. And matching is exact on medium values from a closed list — GA4 does not interpret intent.
The default channel group definitions that matter most
Organic Search
Source matches a known search engine list and medium is organic, or medium exactly matches organic. If someone tags a link with utm_medium=Organic in title case, older GA4 behaviour would miss it; current matching is more forgiving, but the safest habit is always lowercase.
Paid Search
Source is a known search engine AND medium matches a paid regex — ^(.*cp.*|ppc|retargeting|paid.*)$ — which covers cpc, ppc, paidsearch and similar. Google Ads auto-tagging handles this for you. Manually tagged Bing or other search ads need a compliant medium.
Direct
Source is exactly (direct) AND medium is (not set) or (none). This is the bucket for typed URLs, bookmarks, and every referrer the browser refused to pass — app clicks, PDFs, some email clients, and HTTPS-to-HTTP hops. Treat a large Direct number as unresolved traffic, not as brand loyalty.
Referral
Medium is referral, link or app. This is where untagged inbound links land. If your own domain appears here, you have a cross-domain measurement problem.
Organic Social
Source matches Google’s social platform list, or medium matches ^(social|social-network|social-media|sm|social network|social media)$. Note that utm_medium=facebook does not qualify — the platform belongs in source, not medium.
Source or medium contains email, e-mail, e_mail or e mail. Sending platforms that default to utm_medium=newsletter will not match, and that traffic ends up somewhere less useful.
Cross-network: the bucket nobody asked for
GA4 cross-network catches sessions where the campaign name contains cross-network, which in practice means Performance Max and Demand Gen campaigns that span search, display, YouTube, Discover and Gmail. Google cannot attribute the session to a single network, so it uses a network-agnostic label.
If you run Performance Max, expect a meaningful share of your paid traffic to sit here rather than in Paid Search or Paid Shopping. It is not an error and there is no setting to split it — the underlying campaign genuinely spans surfaces. For reporting, either analyse Cross-network alongside your other paid channels as one paid total, or work from Google Ads campaign-level data where the network breakdown exists.
Paid Other, and what it is telling you
Paid Other in GA4 means the medium matched a paid pattern but the source did not match any known search, social, video or shopping platform. GA4 knows you paid for the traffic and does not know where from.
Nearly always, the cause is a manually tagged campaign with a non-standard source. A link tagged utm_source=partner-site&utm_medium=cpc is paid, but partner-site is on none of Google’s lists, so it falls through to Paid Other. Sponsorships, newsletter placements, affiliate deals and display networks outside the big platforms all end up here.
The fix is not to eliminate Paid Other — it is a legitimate bucket for paid traffic Google cannot classify. The fix is a UTM convention you enforce, plus a custom channel group if you want those placements named properly.
Unassigned traffic and how to reduce it
Unassigned is not a channel definition. It is the fallback when no rule matched at all. The usual causes, in rough order of frequency:
- Invented UTM mediums.
utm_medium=newsletter,utm_medium=qr,utm_medium=social-post. None match a default definition. - Source with no medium, or medium with no source. Most definitions require both.
- Broken Google Ads linking. Auto-tagging on but the account link missing, so the gclid cannot be resolved.
- Consent mode gaps. Sessions where attribution data was never collected.
Audit it directly: build an exploration with Session source / medium as the dimension, filtered to Unassigned sessions. The offending UTM values will be listed in front of you, usually traceable to one email platform or one agency’s link builder. Fixing the tagging convention removes most of the volume within a fortnight.
Custom channel groups
Since 2023 you can build your own groupings in Admin → Data display → Channel groups. You can clone the default set, reorder rules, and add definitions — for example, splitting branded from non-branded paid search, or carving affiliates out of Paid Other.
Two things to know. Custom channel groups apply retroactively to historical data, which is genuinely useful and also means a change alters last quarter’s numbers. And rule order matters enormously; a broad rule placed high will swallow traffic intended for a narrower one below it. Build the specific rules first, the general ones last, and document what you did, because six months later nobody will remember why Referral is smaller than it used to be.
Reading channel reports without being misled
Three GA4 behaviours affect every channel number you look at. Standard reports take 24 to 48 hours to fully process. Data thresholding withholds rows when Google Signals is enabled and the segment is small. And attribution defaults to data-driven, with model changes applying retroactively — so a channel’s share can move without any change in traffic at all, purely because someone switched the reporting model to last-click.
For SEO specifically, remember that Organic Search here is a bucket of sessions, not a search performance report. GA4 does not hold your queries, impressions, or average positions, and it never will. If organic sessions fall, the channel report tells you that they fell and nothing about why.
SEO Rocket connects Google Search Console and GA4 and treats them as ground truth for your own site’s performance, showing real clicks and sessions beside third-party index estimates with each source clearly labelled, so an organic decline can be read against actual position and query movement rather than guessed at. Third-party position and volume figures are modelled estimates; your own Google data is not. SEO Rocket does not replace GA4, build custom GA4 reports, or configure channel groups for you — that work stays in your property.
A tagging convention worth enforcing
Lowercase everything. Use only the mediums that match default definitions: organic, cpc, email, referral, social, display, affiliate. Put the platform in source, never in medium. Always set both source and medium. Leave Google Ads auto-tagging on and confirm the account link. Then check the Unassigned row monthly — if it grows, somebody has started building links their own way, and catching it early is far cheaper than reconstructing a quarter of misfiled traffic.