What utm_medium actually is
utm_medium is one of the five campaign tags a marketer types by hand into a link, and it answers a narrower question than its sibling utm_source: not which specific place sent the click, but which general category of channel that place belongs to. Typical values are cpc for paid search, email, social, referral and affiliate. Where utm_source is a name, utm_medium is a bucket, and every analytics report that groups traffic "by channel" is grouping by this field specifically.
Treat it as a closed list, not free text
utm_medium is the tag most likely to drift into inconsistency, because unlike utm_source, which is naturally constrained to the actual places you send links from, there is no obvious ceiling on how many medium values someone could invent. One person writes cpc, another writes paid-search, another writes ppc, and a channel report that should show one row for paid search shows three. The fix is picking a short fixed vocabulary before you tag anything, cpc, email, social, referral, affiliate, organic, display covers nearly every case, and writing it down somewhere the whole team can see, since a value typed once wrong tends to get copied forward by whoever builds the next link.
The pairing that actually matters
utm_medium only means something next to utm_source; neither field alone tells you much. facebook paired with cpc is a paid ad. The same facebook paired with social is an organic post. Get the pairing backwards, source in the medium field or vice versa, and the two fields stop lining up with what every other campaign in the account uses, which quietly breaks channel-level reporting even though each individual link still technically works.
What GA4 actually requires, exactly
Google Analytics 4's Default Channel Group rules are published, and they are stricter than "pick a sensible word." A few of the exact-match requirements that trip people up: Organic Search requires the medium to exactly equal organic, not a variant like "organic-search" or "seo". Affiliates requires an exact match on affiliate. Display requires the medium to be one of a fixed set, display, banner, expandable, interstitial, or cpm, and nothing else. Paid channels look for a medium containing cp, equal to ppc, equal to retargeting, or starting with paid. Get the exact string wrong and GA4 does not guess a close match, it drops the session into Unassigned instead.
A worked example, decoded
Paste https://example.com/promo?utm_source=newsletter&utm_medium=email&utm_campaign=autumn-sale into the decoder above. utm_medium comes back as email, one of GA4's exact-match channel triggers: source or medium containing email, e-mail, e_mail or e mail routes the session into the Email channel. Change that value to something close but not exact, like e-newsletter, and the same link no longer matches any of GA4's Email rules.
Common mistakes
- Writing a descriptive value instead of the exact one GA4 checks for. "organic-search", "Organic" and "SEO" all read fine to a person, but none of them exactly match the string
organicthat GA4's rule requires, so the session lands in Unassigned instead of Organic Search. - Inventing a display-style value outside the fixed set. GA4's Display channel matches only five exact values. A reasonable-sounding
utm_medium=banner-adorutm_medium=programmaticwill not match any of them. - Assuming case does not matter. GA4 matches the literal string. A capitalized
EmailorOrganicis a different string to the tool than the lowercase forms its rules test for.
Is it safe to remove?
Removing it is harmless for a visitor and changes nothing about where the link goes; it only removes the channel-category label from that click's attribution record. Since it identifies a category rather than a person, there is no privacy reason to strip it before sharing a link, only a reporting reason: whoever built the link loses the ability to group that visit by channel.