Email is still the highest RPV channel for many indie SaaS products, when you can prove it. Proof dies the moment your newsletter platform rewrites links and drops half the query string.
Related reading: UTM attribution guides. Start from the naming guide if tags are new.
The monthly click test (five minutes)
For each provider you use:
- Send a test issue to yourself.
- Click the main CTA from mobile mail and desktop mail.
- Land on your site, copy the full URL from the address bar.
- Confirm
utm_source,utm_medium, andutm_campaignsurvived. - Confirm your analytics session shows the same values on first pageview.
Log pass/fail in the dictionary page. Providers change behavior without announcement.
Custom tracking domains vs branded links
Some tools proxy links through links.yourdomain.com. UTMs may be appended after the proxy encodes the destination. That is fine if the final landing URL includes them. It fails when the proxy stores only the path.
If pass/fail fails, switch to raw HTTPS links with UTMs for primary CTAs until the vendor fixes encoding, revenue truth beats click tracking vanity.
Button vs in-text links
Use the same UTM campaign; differ utm_content:
cta-button-topinline-paragraph-2footer-ps
Editors often duplicate buttons and inline links; inconsistent tags split one send into fake channels.
Plain-text vs HTML duplicates
Multipart emails sometimes show different URLs in plain-text part. Align both parts or plain-text readers become (direct) while HTML readers look tagged, you will think the issue flopped when it did not.
Apple Mail Privacy and open tracking
MPP affects opens, not necessarily click UTMs. Do not confuse low open rates with broken UTMs. Click-based attribution still works if links parse.
UTM on unsubscribe and preference links
Do not put campaign UTMs on unsubscribe URLs, you do not want “unsubscribe” as a revenue channel. Use neutral paths or omit marketing params.
Cross-posting the same issue to the web
If you publish the newsletter as a blog post, web readers may arrive without email UTMs. That is fine, tag web with utm_medium=web-archive if you care about the split.
Segmenting by issue without 50 campaigns
Pattern: utm_campaign=2026-01-newsletter-03 for the third send of January. Content slots use utm_content. You can compare issue 02 vs 03 without renaming mid-month initiatives.
When revenue lags the send
Subscribers click Thursday, buy Sunday. Review email inside a 7-day pin after send, not 24 hours. Same guidance as thin-traffic RPV windows.
Fixing a broken month retroactively
You cannot recover lost UTMs. Pin the broken week as attribution-untrusted, fix links, move on. Comparing broken weeks to clean weeks creates fake “email died” narratives.
Integration with marketing pulse
Mark the send on your timeline (marketing pulse guides) so the traffic hump lines up with the issue name even before revenue catches up.
Checklist before every send
- Primary CTA URL pasted from bookmark template
- Mobile test click logged this month
utm_contentdiffers if multiple CTAs- No UTMs on transactional-only links
Newsletters reward consistency more than cleverness. Surviving redirects is table stakes; the win is seeing email as a revenue row you trust when you choose the next subject line.
Provider-specific habits (test yours)
Beehiiv / ConvertKit / Mailchimp / Substack: behavior changes. Your dictionary should list:
- Does the tool wrap links?
- Can you disable wrapping for primary CTA?
- Does custom domain tracking alter query order?
Re-test after any DNS change on links.yourdomain.com.
Double-encoded ampersands
Some editors show &utm_source in HTML source. Browsers decode fine; broken parsers do not. View source on one sent issue yearly. If you see amp; chains, fix template before the next sponsorship slot.
Sponsorship blocks inside your issue
Sponsors add their own links, fine. Your UTMs belong on your CTA only. Do not tag sponsor URLs with your campaign names; it wrecks both parties’ analytics.
Re-send and “oops” issues
Correction sends should use utm_campaign=2026-01-newsletter-03-correction or utm_content=correction on the same campaign, pick one convention and note it. Otherwise correction traffic merges with the flawed send and you cannot compare fix uptake.
List hygiene vs attribution
Cleaning bounces does not change UTMs, but sudden list shrink makes email revenue drop look like copy failure. Note list size in the pin comment when reviewing RPV.
Subject line experiments
Two subject lines (A/B) should differ utm_content on the winning link path if the tool supports split UTMs; if not, run separate campaigns newsletter-03-subject-a vs subject-b. Compare revenue per recipient, not just open rate.
Free subscribers vs paid tier readers
If you segment lists, tag utm_content=list-free vs list-paid on the same campaign. Same product, different willingness to pay, creative should differ.
Web view and forward-to-friend
Forwarded emails often strip UTMs or replace with reader clients’ wrappers. Accept (direct) bumps after great issues; watch new subscriber count separately.
GDPR and unsubscribe
EU readers may click less on tracked links if copy feels surveillance-heavy. UTMs are not personal data by themselves, but tone matters. Clear CTA copy beats paranoid microcopy about tracking.
Connecting to Stripe receipts
Buyers sometimes click email after purchase to read help docs, revenue already attributed. Email row may show clicks without incremental revenue that week. Extend pin to 14 days for educational issues.
Sample issue teardown
- Pick top revenue issue last quarter.
- List each CTA
contenttag. - Rank by clicks and by revenue.
- Reuse top two structures in next quarter’s outline.
If email wins every month
Double send frequency cautiously, list fatigue drops RPV before unsubscribes show. Watch revenue per recipient (revenue ÷ delivered) if your tool exposes deliveries; otherwise proxy with clicks trend.
Sibling links
Email is too valuable to guess. Five minutes of click testing per month buys confidence in the channel that often funds everything else on a solo SaaS calendar.
DMARC and link branding side effects
Strict DMARC sometimes pairs with new link branding products. When deliverability projects run, re-run the click test, not because DMARC strips UTMs, but because teams often change link domains simultaneously and break templates.
Archive pages on your site
If /newsletter/2026-01-03 mirrors the issue, tag archive traffic utm_medium=web so email RPV stays clean when readers share the web archive instead of the inbox link.
Hiring a copywriter later
Hand them the dictionary page and one screenshot of a passing click test. Good copywriters will ask for UTMs; great ones will refuse to send until URLs validate.
Preheader and CTA competition
Some readers click the first link in the preheader test. If your tool duplicates the main CTA there, use the same utm_content or analytics double-counts intent paths. If preheader links to a different article, tag utm_content=preheader explicitly.
Measuring “saved for later” behavior
Readers who star email and buy next week still carry session UTMs if they click the original link later. Direct traffic rises when they type your domain from memory, that is success, not attribution failure. Extend measurement windows before declaring email weak.
Hub link
UTM attribution guides · compare with automation naming when the same story ships via email and zap the same day.