This is the single most common UTM mix-up, and it quietly corrupts more reports than any other tagging mistake. The distinction is simple once stated plainly: utm_source says who sent the click; utm_medium says how it arrived.
The rule of thumb
Ask two questions about any link. Where did the click physically happen? That is the source: facebook, google, newsletter, partner-blog. What kind of channel carried it? That is the medium: paid-social, cpc, email, referral. One link, two answers, two parameters.
Worked examples
| Scenario | utm_source | utm_medium |
|---|---|---|
| Google Ads search campaign | google | cpc |
| Instagram paid ad | instagram | paid-social |
| Organic LinkedIn post | linkedin | social |
| Monthly newsletter | newsletter | email |
| Guest post on industry blog | industry-blog | referral |
| Podcast sponsorship | show-notes | podcast |
| QR code at event booth | event-booth | qr |
Where teams go wrong
- Putting the platform in medium.
utm_medium=facebookwastes the parameter — facebook is a source. The medium should bepaid-socialorsocial. - Putting the channel in source.
utm_source=emailtells you nothing about which email. Source should benewsletterorwelcome-series; medium isemail. - Repeating the same value in both.
utm_source=social&utm_medium=socialdoubles the noise and halves the information. - Case drift.
Emailvsemailsplits one channel into two rows in every report.
A memory aid
Source is a proper noun — a name. Medium is a common noun — a category. If the value sounds like somewhere (google, newsletter, partner-blog), it belongs in source. If it sounds like something (email, cpc, referral, display), it belongs in medium. When in doubt, generate a consistent set with the utm_medium generator and pin it in the team wiki.