You send emails. People click links. But when you check your analytics, half the traffic shows up as “direct.” Or it gets lumped with other campaigns. You can’t tell which email drove what.
This happens because email links aren’t tagged consistently. Or they’re auto-tagged by your email tool in ways you didn’t choose. Or someone copy-pasted last month’s link without updating the campaign name.
How email UTMs work
UTMs tell analytics where clicks came from. For email, you’re answering:
- utm_source: Where did this come from? (email)
- utm_medium: What type of email? (newsletter, drip, onboarding)
- utm_campaign: Which specific send? (july_2025_digest, welcome_sequence)
Tag every link. Then you can see which email sent someone to your site.
Five ways to break your email tracking
Changing utm_source per campaign. Don’t use utm_source=july_newsletter. Source should be stable. Use email every time.
Forgetting utm_medium. Without it, all your emails look the same in reports. A newsletter is different from an onboarding drip.
Date-based campaign names that expire. utm_campaign=email_july_15 tells you nothing in three months. Use descriptive names.
Letting the ESP auto-tag everything. Some email tools add their own UTMs. If you also add yours, you get duplicates or conflicts. Check what your tool does before adding your own.
Inconsistent casing. Newsletter and newsletter show up as separate campaigns in most analytics tools. Pick lowercase. Stick with it.
How to tag it
For every email link, use this:
utm_source=email
utm_medium=[type of email]
utm_campaign=[descriptive name]
Types of email (pick one per email type):
newsletter— regular sends to your listdrip— automated sequencesonboarding— welcome or activation emailstransactional— receipts, password resets (if you’re tracking those)
Newsletter vs drip: two examples
Newsletter example:
You send a monthly product digest. The link to your pricing page:
https://example.com/pricing?utm_source=email&utm_medium=newsletter&utm_campaign=july_digest
emailas source — stable, always the samenewsletteras medium — distinguishes it from drip sequencesjuly_digestas campaign — specific enough to identify, readable in reports
Drip/onboarding example:
Someone signs up and enters a 5-email welcome sequence. Email 3 links to a demo page:
https://example.com/demo?utm_source=email&utm_medium=onboarding&utm_campaign=welcome_3
- Same
emailsource onboardingmedium — separates it from marketing newsletterswelcome_3— identifies the sequence
Verify it in analytics
After sending, go to Google Analytics. Navigate to Reports > Acquisition > Traffic acquisition.
Filter by source/medium = email / newsletter or email / onboarding.
You should see your campaign names listed. If you see:
(not set)— links weren’t tagged- Duplicate campaigns with different casing — fix your consistency
- Your ESP’s auto-tags mixed with yours — you have a conflict to resolve
Click numbers should roughly match what your email tool reports. Big gaps mean tracking is broken somewhere.