June 2, 2026 · 4 min read

The utm_medium Values GA4 Actually Accepts

GA4 buckets traffic as Unassigned when utm_medium doesn't match its channel rules. The mapping table Google scattered across help docs, in one place.

utm analytics

Unassigned means GA4 gave up

Open your Traffic acquisition report and look for a channel called Unassigned. That row is GA4 telling you: I received source and medium values, and I have no rule that maps them to a channel. The data isn't lost. It's just filed under "shrug."

Here's what most people miss. GA4's default channel groups are defined by exact rules on utm_medium (and sometimes utm_source), and the rules are pickier than anyone expects. Tag an email link with utm_medium=newsletter and it lands in Unassigned, because GA4's Email channel doesn't recognize "newsletter." You did tag the link. You still lost the report.

The mapping table

This is the reference we wish Google published on one page instead of scattering across help docs. Left column is the channel you want, right column is what utm_medium must be for GA4 to put you there.

Channel you want utm_medium must be Notes
Email email, e-mail, e_mail, e mail "newsletter" and "mail" do NOT match
Paid Search cpc, ppc, retargeting, or anything containing "cp" / starting "paid" Source must also be a search site (google, bing)
Paid Social cpc, ppc, paid-social, retargeting, etc. Source must be a known social site (facebook, instagram)
Organic Social social, social-network, social-media, sm Source can be anything
Display display, banner, expandable, interstitial, cpm
Affiliates affiliate Singular. "affiliates" works too, "partner" doesn't
Referral referral
SMS sms "text" doesn't match
Mobile Push push, mobile, notification
Audio audio Podcast links: use this, not "podcast"

A few of these trip up nearly everyone:

"newsletter" is the classic. It reads like the most natural medium for email. GA4 disagrees. Use utm_medium=email and put "newsletter" in utm_campaign or utm_content instead.

"podcast" isn't a medium GA4 knows. Audio is. We've seen entire podcast sponsorship budgets reported as Unassigned because of this one word.

"qr" and "pdf" have no home. GA4 has no channel for them. Pick the nearest real channel (a QR code on a poster is arguably offline → we use a dedicated medium and a custom channel group) or accept Unassigned and read them by source instead.

Paid Social needs both halves. utm_medium=cpc with utm_source=facebook lands in Paid Social, and the same medium with utm_source=fb-ads may not, because "fb-ads" isn't on Google's source list. The source spelling matters as much as the medium.

Two ways to fix an Unassigned pile

Option one: fix the tags going forward. Adopt the table above as your allowed utm_medium list. This is exactly the kind of rule that dies in a spreadsheet, so put it in your link builder as a dropdown. Five values cover most teams: email, cpc, social, referral, affiliate. If a medium isn't on the list, it doesn't ship.

Option two: custom channel groups for the past. GA4 lets you define custom channel groups (Admin, then Data display, then Channel groups). You can write rules that sweep your historical "newsletter" and "podcast" traffic into the right buckets. This fixes reporting retroactively but not the underlying data, and every new rule is one more thing the next analyst has to discover.

Do both, honestly. But option one is the one that compounds.

Don't over-fit to Google's list

One caution before you rename everything. GA4's channel list is Google's worldview, not yours. If "podcast" as a medium is genuinely useful to your team, keep it and build the custom channel group once. Thing is, the goal is intentional values, not blind compliance.

What you can't do is improvise per link. The naming conventions post covers how to pick your standard. Whatever you choose, the enforcement matters more than the choice, and enforced-at-creation beats cleaned-up-in-GA4 every single time.

Check your last 90 days of Unassigned traffic against the table above. We'd bet money at least one of your "mystery" rows is a medium GA4 simply doesn't speak.

← All posts