Skip to content

UTM naming rules that survive GA4 channel grouping

GA4 turns utm_source and utm_medium into a default channel by fixed rules, so the medium decides whether a click lands in Paid Social, Email, Organic Social or Unassigned. Use lowercase values from one list and audit last month's Unassigned rows.

By , Founder & CEOPublished 6 min read

Run the numbers for your store: the free UTM builder.

For links you tag by hand, GA4 files a session under a default channel by matching utm_source and utm_medium against fixed rules, so the medium you type decides where a click lands. Google's rule for Paid Social needs a social source and a medium that matches ^(.*cp.*|ppc|retargeting|paid.*)$, so paid_social passes, while a Facebook ad click tagged social is filed as Organic Social. A medium no rule names lands in Unassigned, the value used "when there are no other channel rules that match the event data".

Which utm_medium values does GA4 turn into which channel?

Google prints the rules on its Default channel group page and says the definitions "aren't case sensitive and can't be edited". For links you tag by hand, these are the ones an online store uses:

  • Paid Social, Paid Search, Paid Video: the source is on Google's list of social, search or video sites and the medium matches the paid pattern above (contains cp, starts with paid, or is ppc or retargeting). Tag paid_social for social, cpc for search and paid_video for video.
  • Email: the source or the medium is email (e-mail, e_mail and e mail also match). Tag the medium email.
  • SMS: the source or the medium is exactly sms.
  • Affiliates: the medium is affiliate.
  • Referral: the medium is referral, app or link.
  • Display: the medium is display, banner, expandable, interstitial or cpm.
  • Organic Social: the source is on the social list, or the medium is social, social-network, social-media, sm, social network or social media.

Two things to check. Google's channel descriptions name TikTok among video sites, so look at where your TikTok rows land before you build a report that assumes Paid Social. And the site lists are Google's, linked from that page, and it reviews requests to add a site "at least once per year", so a newer platform may not be on them yet.

What lands in Unassigned, (not set) or the wrong channel?

Five causes, each from Google's documentation or read straight off its rules:

  1. A medium no rule names. A medium such as newsletter or edm, on a source Google doesn't list, matches nothing: "There may be no predefined rule to categorize a traffic source if your traffic comes from a user-defined source or medium".
  2. A paid click whose medium doesn't read as paid. The mediums social and social_paid fail the paid pattern, so a click from a social site is filed under Organic Social, where it looks like free traffic.
  3. Missing parameters. "Missing UTM parameters will result in (not set) values being present in reporting", and when the session source / medium is (not set), "your traffic will be shown as Unassigned in the default channel group".
  4. Partial tags on Google Ads clicks. Google uses the auto-tagged values when both kinds are present. Where the click ID can't be used, any UTM parameter on the URL makes GA4 take all traffic source values from the UTM parameters alone, so a partial set leaves (not set).
  5. Redirects and shorteners. Google says redirects "can strip UTM parameters from the URL" and shorteners such as bit.ly "can also strip away referral details", so the visit arrives as direct, not as your campaign.

Which naming rules keep reports clean?

Google's own UTM best practices come down to five rules:

  1. One utm_source per platform. Google: "Use only one unique utm_source for each distinct platform such as Facebook, Instagram, TikTok."
  2. One utm_medium per channel, from the list above. Google's own example is paid_social.
  3. One utm_campaign name that matches the campaign's exact name in the platform.
  4. Lowercase. Google: "Use lowercase as a standard practice." It says "Meta and meta" are "treated as different values", which splits rows but not channels, because the channel rules aren't case sensitive.
  5. All the parameters, every time. Google says to always use utm_source, utm_medium and utm_campaign, and to add utm_id and utm_source_platform when you set any.
utm_source=facebook
utm_medium=paid_social
utm_campaign=spring_sale_prospecting
utm_content=video_a

Keep the list in one shared sheet and build links from it. Use dynamic values where a platform offers them. Google Ads is the exception: auto-tagging sets its channel, so don't add a partial set of UTM parameters to those URLs.

How do you audit what GA4 did with your tags?

  1. Open Reports, then Acquisition, then Traffic acquisition, where Google says the parameter values are visible. Set the range to your last full month and the dimension to Session default channel group, the session-scoped one.
  2. Filter to Unassigned, add Session source / medium as a second dimension and list each pair with its sessions and purchases. Then scan Organic Social, Referral and Direct for platforms you pay.
  3. For each pair, find the link that produced it and compare it with your list. Fix the link, not the report.

Pass: every source / medium pair with purchases sits in the channel you meant. Fail: any paid platform's purchases in Organic Social, Unassigned or Direct. The pages read for this post give no acceptable share of Unassigned traffic, so set your own line: no purchases in Unassigned. Check new links in the UTM builder and GA4 channel checker before they ship, and see how much traffic arrives tagged with the UTM coverage calculator.

For old data, the default channel group can't be edited, so past rows stay as GA4 filed them, but a custom channel group "can be applied to your reports retroactively". A standard property can hold 2 of them besides the default, with up to 50 channels each (Google Analytics Help, 30 September 2026). What a tagged link can and can't say about the ad itself is in Do UTM parameters show which ad made the sale?.

Sources, 30 September 2026: URL builders: Collect campaign data with custom URLs (Google Analytics Help, 2026); Default channel group (Google Analytics Help, 2026); Tagging best practices to avoid unassigned, (not set), and direct traffic issues (Google Analytics Help, 2026); What the value (not set) means in your reports (Google Analytics Help, 2026); Traffic-source dimensions, manual tagging, and auto-tagging (Google Analytics Help, 2026); Understand (direct) / (none) traffic (Google Analytics Help, 2026); Custom channel groups (Google Analytics Help, 2026).

Frequently asked questions

  • Why is my traffic Unassigned in GA4?
    No default channel rule matched the source and medium GA4 recorded: a medium no rule names, or a missing utm_medium, which GA4 reports as (not set). Google defines Unassigned as the value used when there are no other channel rules that match the event data.
  • Are UTM values case sensitive in GA4?
    In reports, yes: Meta and meta are separate rows. The channel rules aren't case sensitive, so both land in the same channel. Use lowercase everywhere so your rows don't split.
  • Which utm_medium should I use for paid social ads?
    A value GA4 reads as paid, such as paid_social, with the platform as utm_source. Google's paid pattern matches mediums that contain cp, start with paid, or are exactly ppc or retargeting. A medium such as social is read as organic.
  • Can I fix old mis-tagged traffic in GA4?
    In reports, yes. Google says a custom channel group can be applied to your reports retroactively, and a standard property can hold two besides the default. The default group itself can't be edited.

Go deeper: Causal attribution, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

Free, in your browser: your file is not uploaded. The full read is €99, refundable within 30 days. Prices exclude VAT.
Or book a 30-min call.