Email marketing consistently delivers some of the highest ROI of any digital marketing channel. Studies from the Data & Marketing Association have long placed email ROI in the range of $36–$42 for every $1 spent. And yet, most email marketers can't tell you with certainty which emails are actually driving conversions — because they're not tracking their links correctly.
The culprit? Missing or poorly structured UTM parameters.
When email links aren't tagged with UTMs, all that traffic lands in Google Analytics labeled as "direct" — as if users typed your URL directly into their browser. Your email performance is invisible. Your ROI calculation is guesswork.
This guide shows you how to fix that: a complete system for tracking every email campaign with UTM parameters, including a naming convention template and a step-by-step walkthrough for setting it up.
Why Email Traffic Gets Misattributed
Before diving into the how, it's worth understanding why this problem exists.
When someone clicks a link in a web browser, the referring URL is passed to the destination site — which is how Google Analytics knows the visit came from, say, a Facebook post. But email clients don't work the same way. Most desktop email clients (Outlook, Apple Mail) and many mobile clients don't pass referrer information at all. When the link is clicked, there's no HTTP referrer to capture.
Without a referrer, Google Analytics defaults to labeling the session "direct/none" — the catch-all bucket for sessions where the source is unknown.
UTM parameters solve this entirely.
Instead of relying on referrer data (which email clients don't send), you're embedding the source information directly into the URL. The analytics platform doesn't need to guess — the data is right there in the link.
This is why UTM tagging is non-negotiable for email campaigns. Without it, you're flying blind.
The Right UTM Structure for Email
For email campaigns, there are three to five parameters you'll use:
Required Parameters
utm_source
Identifies which email list, platform, or email type sent the traffic.
Options:
- •
newsletter— for your main subscriber newsletter - •
email— generic email traffic - •
mailchimp,klaviyo,hubspot,activecampaign— if you want to track by platform - •
drip,onboarding,winback— for specific automated sequences
Best practice: use newsletter for broadcast emails and the sequence name (e.g., welcome_sequence) for automated flows. This gives you cleaner segmentation.
utm_medium
For email, this is always email. No exceptions, no variations.
Consistent use of this value means all email traffic gets grouped together correctly in GA4's channel reporting — under "Email" — regardless of the source variation.
utm_campaign
Identifies the specific email or campaign. This is where most of the useful differentiation happens.
Use this format:
[email_type]_[description]_[date]Examples:
- • newsletter_weekly_digest_may2026
- • promo_spring_sale_apr2026
- • drip_onboarding_email3_evergreen
Optional Parameters
utm_content
Use this to differentiate between multiple links in the same email. This is especially valuable for emails with more than one CTA.
Examples:
- •
utm_content=hero_cta— the main button at the top - •
utm_content=body_link— a text link mid-email - •
utm_content=footer_cta— a secondary CTA at the bottom
With utm_content, you can see not just that an email drove traffic, but *which specific link* drove the most clicks. This informs your email design — if the footer CTA outperforms the hero button, that's a design insight worth acting on.
utm_term
Rarely used in email, but can be useful for personalized or segmented emails. For example:
- •
utm_term=enterprisevsutm_term=smbif you're sending segmented versions to different audiences
Email UTM Naming Convention Template
Here's a ready-to-use template for your team:
EMAIL UTM CONVENTION
====================
utm_source options:
newsletter → Broadcast newsletter emails
welcome_series → Welcome/onboarding sequence
winback → Win-back/re-engagement sequence
[promo_name] → Named promotional campaigns (e.g., spring_sale)
transactional → Order confirmations, receipts, shipping notifications
utm_medium:
Always: email
utm_campaign format:
[type]_[description]_[month][year]
Examples:
newsletter_weekly_may2026
promo_black_friday_nov2026
drip_onboarding_email1_evergreen
utm_content (use when email has multiple links):
hero_button → Primary CTA button
body_link_1 → First in-text link
body_link_2 → Second in-text link
footer_cta → Footer call-to-action
ps_link → P.S. section link
banner_image → Clickable image/banner
utm_term (optional, for segmented sends):
[segment_name] → e.g., enterprise, smb, free_trial, paid_userCopy this into your team's internal documentation and reference it every time a new email campaign is built.
Step-by-Step: Building UTM Links for an Email Campaign
Let's walk through a real example. You're sending a promotional email for a product sale. The email has three links: a hero button, a body text link, and a P.S. link.
Open the UTM Builder
Build the hero button link
- • Destination URL:
https://yoursite.com/spring-sale - • utm_source:
newsletter - • utm_medium:
email - • utm_campaign:
promo_spring_sale_apr2026 - • utm_content:
hero_button
Build the body text link
Same parameters, but change utm_content:
- • utm_content:
body_link
Build the P.S. link
- • utm_content:
ps_link
Place the URLs in your email
Replace the plain destination URLs in your email template with the UTM-tagged versions. Each link is unique — so you'll know exactly which one drove each click.
Tracking Automated Email Sequences
For automated email sequences (welcome series, onboarding flows, re-engagement campaigns), the approach is slightly different because these emails run continuously.
Use evergreen campaign names:
Instead of date-stamping evergreen emails, use a sequence identifier:
- • utm_campaign=welcome_series_email1
- • utm_campaign=welcome_series_email2
- • utm_campaign=welcome_series_email3
This lets you see which email in the sequence drives the most site visits and conversions — an invaluable insight for optimizing your automation.
Include the email number or stage:
For long sequences, number your emails in the campaign name so you can compare performance across the funnel:
- • drip_trial_onboarding_day1
- • drip_trial_onboarding_day3
- • drip_trial_onboarding_day7
- • drip_trial_onboarding_day14
If Day 14 emails drive the most conversions, that tells you something important about when your audience is ready to buy.
Tracking Transactional Emails
Transactional emails — order confirmations, shipping notifications, account alerts — are often overlooked for UTM tracking because they're not "marketing" emails. But they still contain links, and those links drive real traffic.
Tag transactional email links with:
utm_source=transactional
utm_medium=email
utm_campaign=[email_type]
For example:
- •
utm_campaign=order_confirmation - •
utm_campaign=shipping_notification - •
utm_campaign=password_reset
This keeps transactional traffic separate from marketing email traffic in your reports, so each bucket is clean and attributable.
Where to Find Email UTM Data in GA4
Once your UTM-tagged emails are sending, here's how to find the data:
Traffic Acquisition Report
- Go to Reports → Acquisition → Traffic Acquisition
- Change the primary dimension to Session source/medium
- Look for
newsletter / email,welcome_series / email, etc.
Campaign Performance
- In the same report, change the dimension to Session campaign
- Filter by medium = email to see only email campaigns
Content Performance (utm_content)
- In Explore (GA4's analysis tool), create a free-form exploration
- Add dimensions: Session campaign + Session manual ad content
- This shows you which specific links within each email drove traffic
This breakdown is where the real power of utm_content becomes visible. You can see, for example, that your P.S. links consistently outperform hero buttons — and redesign your emails accordingly.
Common Email UTM Mistakes to Avoid
Mistake #1
Don't use utm_source=email as your only source
If everything is tagged utm_source=email, you lose the ability to distinguish between your newsletter, your onboarding sequence, and your promotional campaigns. Use specific source names to maintain granularity.
Mistake #2
Don't forget to tag every link in the email
If your email has five links and you only tag three, the untagged two will show as direct traffic. Tag every link that points to your website.
Mistake #3
Don't use the same campaign name for every email
utm_campaign=newsletter tells you nothing. Tag each issue or campaign with a specific, date-stamped name.
Mistake #4
Don't put UTMs on unsubscribe or preference center links
These go to email service provider pages, not your website. UTM parameters on these links are pointless and add visual noise to your URLs.
Mistake #5
Don't skip testing before you send
Always click every link in a test send to verify that the UTM parameters are there and correct before you hit send to your full list.
Email UTM Checklist (Pre-Send)
Print this out or add it to your email QA process:
EMAIL UTM PRE-SEND CHECKLIST
- Every link pointing to your website has UTM parameters
- utm_medium=email on all links (lowercase)
- utm_source matches your approved naming convention
- utm_campaign is descriptive and date-stamped
- utm_content is unique for each link in the email
- All values are lowercase with no spaces
- URLs built using findbest.tools/utility/utm-builder
- Test email sent and all links verified by clicking through
- Destination pages load correctly with UTM parameters in the URL
The Long-Term Payoff
Once you've been consistently tagging email campaigns for a few months, the insights compound. You'll be able to:
- •Compare email revenue contribution quarter-over-quarter
- •Identify which email types (newsletters vs. promos vs. sequences) drive the highest-value traffic
- •Optimize email send cadence based on conversion data
- •Prove email ROI to stakeholders with hard numbers
- •Identify which CTAs and link placements get the most clicks
Email marketing is already one of the highest-ROI channels available to marketers. UTM tracking is what transforms it from a channel you feel is working to a channel you can prove is working — with data.
Build Your First Tagged Email Link Right Now
Head to findbest.tools/utility/utm-builder, build a tagged version of your next email's primary CTA, and save the convention template from this guide to your team's shared docs.
Open UTM Builder →Your email data will never be invisible again.