Source / medium
The paired traffic label that says who sent a visit and how: google / organic, newsletter / email, or partner / referral.
See it
What it is
Source / medium is the paired label analytics uses for where traffic came from and how it was delivered. Source names the specific sender, such as google, partner_blog, or june_newsletter. Medium names the mechanism, such as organic, referral, or email. That produces rows such as 'google / organic' and 'june_newsletter / email'.
Reach for it when an acquisition channel is too broad. Email may look healthy overall while one newsletter sends all the buyers, or referral traffic may be mostly your own checkout domain. Source / medium exposes that difference without dropping all the way to individual campaigns.
Gotcha: these are literal strings, so Email, email, and e-mail become different rows unless you normalize them. Missing campaign tags force the analytics tool to infer from the referrer. In Google Analytics, '(direct) / (none)' means no usable source evidence was available, not that the person definitely typed the address.
Ask AI for it
Add source / medium capture to this app using the URLSearchParams API, document.referrer, and PostHog. Read utm_source and utm_medium on landing, lowercase and trim them, preserve both first-touch and current-session values, and fall back to a referrer hostname plus 'referral' only when UTMs are absent. Use '(direct)' and '(none)' only when neither campaign tags nor an external referrer exists. Send source, medium, and the combined source_medium property on every conversion event, with tests for reloads, internal navigation, malformed URLs, and mixed-case tags.