How medium works
Medium is the second half of the pair that describes where a visit came from. Source names the place — google, facebook.com, your newsletter — and medium names the type of traffic: organic for a free search result, cpc for a paid search click, email, referral for a link on another site, and (none) for direct visits with no information attached.
Analytics fills it in from a tagged link’s utm_medium parameter, from an auto-tagged ad click, or by inference from the referring site. Only the first of those is under your control, and that is exactly where medium is either kept clean or quietly ruined.
Why medium matters
It carries more weight than its size suggests, because channel groupings are built by matching medium against a fixed list of expected values. GA4 files a visit into Organic Search, Paid Search, Email, Referral or Organic Social by reading the pair and looking for values it recognises. A medium it does not recognise cannot be placed, so the traffic lands in Unassigned and disappears from the reports people actually read.
It is also the only thing separating free from paid on the same platform. Source google with medium organic is a search result you earned; source google with medium cpc is a click you bought. Confuse the two and the SEO and advertising numbers merge into something that describes neither.
Where medium goes wrong
Free text is the root cause. Nothing validates what you type, so Email, e-mail, newsletter and mail all coexist happily and each one is counted separately. Only email is matched by the standard grouping; the rest fall out of the Email channel and into Unassigned.
Paid search is the other frequent casualty. The recognised value is cpc; ppc, paid and adwords are not, so campaigns tagged that way stop appearing as paid traffic and the spend looks like it produced nothing. Paid social has its own version, where a boosted post tagged with medium social is filed as organic social and the budget vanishes from the report. And putting a campaign name in the medium field — dashain-offer instead of email — breaks the grouping entirely while looking perfectly reasonable in the link.
How to get it right
Use the standard values and treat them as fixed vocabulary rather than a description: organic, cpc, email, referral, affiliate, display, paid_social, sms. Keep everything lower case, never use spaces, and put the campaign name in utm_campaign where it belongs. Building links through a UTM builder instead of by hand removes most of the risk in one step.
Review the medium report each month and look for values you do not recognise, plus anything sitting in Unassigned — that list is a direct record of tagging mistakes. This matters more where a large share of traffic arrives from Facebook, TikTok and WhatsApp, as it does for most businesses in Nepal, because those links are all tagged by hand. If the channel reports have never been checked against the way campaigns are actually tagged, that reconciliation belongs in a GA4 setup.