How to Track Newsletter Ad Results With UTMs, Codes and Surveys
beehiiv's ad network judges every newsletter ad at 72 hours. Only unique clicks and opens in the first 72 hours after the send count, and clicks from bots, duplicates and readers who bounce right away are filtered out1. A recap follows about 96 hours after the send1. That's a strict, useful standard, and most direct newsletter buys have nothing like it unless you build it yourself.
This page shows how to track newsletter ad results on your own. UTM links per newsletter, promo codes and vanity URLs, post-purchase surveys, how to read the first 72 hours, the cost math, and a simple report that tells you which writers to rebook.
Facts and prices checked November 11, 2026. See something wrong? Tell us.
Key takeaways
- Google Analytics says to always set utm_source, utm_medium and utm_campaign on campaign links, and its values are case sensitive.
- Google Analytics puts traffic in the Email channel when the source or medium is email, e-mail, e_mail or e mail.
- beehiiv's ad network counts unique clicks and opens within 72 hours of the send and filters bots, duplicate clicks and instant bounces.
- Litmus reports that over 50% of email opens happen on devices with Apple Mail Privacy Protection on, so judge newsletter ads on clicks and sales, not opens.
- A product-seeding company (beehiiv case study) reported a 1006% ROAS and a 24% lower CAC from newsletter ads in April 2025.
Why newsletter ads need their own tracking
A newsletter ad gives you no ad platform dashboard. The writer sends the email, readers click, and some buy days later. If you don't tag each link and count each sale, you'll know the total went up but not which newsletter did it.
Brands that track per newsletter can scale with confidence. A product-seeding company (beehiiv case study) went from 4 newsletter campaigns a month to 50+ through beehiiv's ad network. It reported a 1006% return on ad spend, 21% more traffic and leads, and a 24% lower customer acquisition cost2. Black Crow, an AI tool for Shopify stores, reported getting qualified leads at half its target cost per opportunity3. Both are beehiiv's own case studies, and neither gives spend or how the numbers were calculated23. The point isn't the exact figures. It's that both brands could see cost per result by campaign, so they knew what to buy more of.
Opens won't tell you that. Litmus reports that over 50% of email opens happen on devices with Apple Mail Privacy Protection on, which inflates opens4. Clicks, signups and sales are what you track. For vetting a newsletter's numbers before you buy, see how to vet a newsletter open rate.
Set up UTM links for each newsletter
UTM parameters are tags on the end of a link. They tell Google Analytics where a visit came from. Google says that when you add them, "you should always use utm_source, utm_medium, and utm_campaign"5.
| Parameter | What it means | Newsletter example | Required |
|---|---|---|---|
| utm_source | The referrer | tldr, morning_brew, openlamptech | Yes5 |
| utm_medium | The marketing medium | Yes5 | |
| utm_campaign | The product, promo or campaign | q1_launch | Yes5 |
| utm_content | Tells apart creatives or links in the same email | primary_logo, primary_text | Optional5 |
| utm_id | Campaign ID | nl2027q1 | Recommended5 |
Three rules that keep the data clean
- Use lowercase. Values are case sensitive. Google notes utm_source=google is different from utm_source=Google, and recommends lowercase as standard practice5.
- Use utm_medium=email. Google Analytics puts traffic in the Email channel when the source or medium is email, e-mail, e_mail or e mail6. Pick one spelling and stick to it.
- One source per newsletter. Never reuse a tag across two writers, or you can't tell them apart.
A full link might look like this. yourbrand.com/offer?utm_source=openlamptech&utm_medium=email&utm_campaign=q1_launch&utm_content=classified. Click your own tagged link before the send. Dupple, a publisher that sells newsletter ads, tells sponsors to test the final tagged link, not only the plain landing page7.
Promo codes and vanity URLs
UTMs miss people who read the ad, then type your site into a browser later, or buy on their phone after reading on a laptop. Promo codes and vanity URLs catch some of them.
Promo codes
Give each newsletter its own code, like TLDR15 or BREW15. Every order that uses it is a sale you can credit to that newsletter, whatever device or day it happened. Use a reader-only offer if you can. It gives readers a reason to use the code and gives you clean data.
Codes have weak spots. Some leak to coupon sites, and some buyers who saw the ad never use one. Check where code orders come from, and treat code counts as a floor, not the full total.
Vanity URLs
A vanity URL is a short, readable address like yourbrand.com/tldr that redirects to your tagged landing page. It helps readers who remember the address but not the link, and it works in places a long UTM link looks ugly. Make sure the redirect keeps the UTM tags, then test it.
Use both, plus the link
The best setup for a newsletter test is all three. A tagged link for clicks, a code for sales, and a vanity URL for people who come back later. Then add a survey for everyone else.
Post-purchase surveys
A post-purchase survey asks one question after checkout or signup, "How did you hear about us?" It catches people who saw the ad, didn't click, and bought later. Links and codes miss them completely.
How to set it up
- Ask it on the thank-you page or the first screen after signup, not in a later email.
- Make it multiple choice, and add "A newsletter" as an option.
- When someone picks it, ask "Which one?" with the names of the newsletters you're running, plus "Other."
- Keep the list short and shuffle the order so the first option doesn't win by default.
How to read it
Surveys measure memory, not clicks. People forget and guess. Use them to compare newsletters against each other and against your link data, not as an exact count. If a newsletter gets few clicks but lots of survey mentions, it's probably doing more than the link shows.
Tracking only pays off if you have enough newsletters to compare. A test of one tells you little. A test of 5 to 10 newsletters shows you a winner, and finding that many writers who fit is where most brands stall.
Buy direct, skip the middleman
Find newsletters that fit, and email the writer today
Search newsletters with contact emails, save a shortlist and ask for rates.
- Filter by category, country and language
- Unlock contact emails and save shortlists, from $99 a month
- Send outreach from built-in campaigns on Professional ($399 a month)
- 3-day trial, $0 today, cancel anytime
Newsletter tracking methods compared
No single method catches every result. Here's how they compare.
| Method | Measures | Setup time | Weakness |
|---|---|---|---|
| UTM links | Clicks, visits and on-site conversions by newsletter | Minutes per newsletter | Misses people who don't click, and case typos split data5 |
| Promo codes | Orders credited to a newsletter | Minutes in your store | Codes leak, and many buyers never use one |
| Vanity URLs | Visits from people who typed the address | Minutes with a redirect | Small counts, breaks if the redirect drops tags |
| Post-purchase survey | Self-reported source, including non-clickers | An hour to add one question | Memory is unreliable |
| Publisher report | Delivered, opens and clicks on your link | None, the writer sends it | Opens inflated by Apple privacy settings4, counts differ by publisher |
| Ad network report | Filtered clicks and opens in 72 hours | None | Only covers network sends and a short window1 |
Use UTM links and codes on every buy. Add the survey once and keep it running. Ask each writer for a report on your link's unique clicks, and agree on that in the IO. Our newsletter sponsorship agreement template has a clause for it.
Reading the 72-hour window
Most newsletter clicks come soon after the send, because most people read an issue the day it lands. That's why beehiiv evaluates performance at 72 hours1. It's a good first checkpoint for you too.
Check at 72 hours
- Unique clicks on the newsletter's tagged link.
- Signups, trials or leads from those visits.
- Code uses so far.
- The writer's report, if they send one. Compare their click count with yours.
Check again at 30 days
Sales lag clicks, especially for B2B or high-price products. Run a second check 30 days after the send for orders, codes and survey answers. That's our rule of thumb, not a standard. Use your own sales cycle if it's longer.
Why your numbers won't match the writer's
Click counts differ for normal reasons. Publishers may count every click, while your analytics counts sessions. beehiiv filters bots, duplicate clicks and instant bounces, and notes its counts may be lower than raw post metrics1. Morning Brew's IO terms say its own measurements control in a dispute8. Agree in advance on whose count you'll use, and judge every newsletter by the same one, usually yours.
Cost per click, lead and sale
Turn every newsletter into three numbers. Divide the price by clicks, by leads and by sales.
A worked example
Say you pay $600 for one primary placement in a 20,000-subscriber newsletter. Your tagged link gets 240 unique clicks. 18 people start a trial, and 4 become paying customers.
- Cost per click is $600 divided by 240, or $2.50.
- Cost per lead is $600 divided by 18, or about $33.33.
- Cost per sale is $600 divided by 4, or $150.
If a customer is worth $600 to you over a year, that's a 4x return on the placement. If a customer is worth $100, it's a loss. The math only means something next to your own customer value.
A published example
beehiiv's sponsorship cost guide runs a similar sum. A $2,000 sponsorship in a 40,000-subscriber newsletter with a 2% click rate brings 800 clicks. At a 5% conversion rate, that's 40 customers. At $100 each, that's $4,000 in revenue, a 2x return9. That's $2.50 a click and $50 a customer.
Compare against your other channels
Put each newsletter's cost per sale next to paid search and paid social. TLDR reports that Redact got a 50% lower cost per click than LinkedIn from its newsletter placements10. That's a publisher-reported result. Your own numbers are the ones that count.
Deciding to rebook, scale or drop
Once you have cost per sale for each newsletter, the decision is simple. Set your target cost per sale before the test, then sort.
- Rebook and scale. Cost per sale at or under target. Book a run of issues, ask for a better placement and ask for a rate lock.
- Rebook to confirm. Close to target, or strong survey mentions but few clicks. Run it once more with new copy before you decide.
- Drop for now. Well over target after two sends. Thank the writer and try again in six months with a different offer.
Don't judge on one send
One issue is a small sample. A bad subject line or a holiday week can sink it. Give a promising newsletter two or three sends before you drop it. beehiiv's guide says sponsors on 12-week campaigns reportedly see 40% better performance than one-off placements9. That's a platform claim, but repeat exposure is a reason to test more than once.
Test the copy too
If a newsletter's readers fit but clicks are low, change the ad before you change the newsletter. Use utm_content to tell two versions apart5. Our newsletter ad examples show patterns to try. And if you're weighing flat fees against paying per click on a rebook, see CPM vs flat fee vs CPC.
Newsletter ad reporting template
Keep one sheet with one row per newsletter per send. Here's a sample with made-up numbers, to show the format.
| Newsletter (sample) | Send date | Price | Unique clicks | Leads | Sales | Cost per sale | Decision |
|---|---|---|---|---|---|---|---|
| Newsletter A | Mar 3 | $600 | 240 | 18 | 4 | $150 | Rebook |
| Newsletter B | Mar 5 | $300 | 60 | 3 | 0 | None yet | Rerun with new copy |
| Newsletter C | Mar 10 | $55 | 40 | 5 | 2 | $27.50 | Scale |
| Newsletter D | Mar 12 | $1,500 | 300 | 9 | 1 | $1,500 | Drop |
Columns to add
- Placement, primary, secondary or classified.
- Code uses and survey mentions, at 30 days.
- The writer's reported clicks, next to yours.
- Notes on the copy version and offer.
The same sheet works for podcast and YouTube buys. Compare our guides to podcast advertising attribution and tracking YouTube sponsorship results, then put every channel in one view.
Rebook the winners and find more like them
Tracking turns a one-off test into a repeat buy. The winners go back on your list, and you look for more newsletters like them. Media List helps with both.
- Find more newsletters like your winners. Search 28,000+ newsletters you can email by category, country and language.
- See who to contact. Each newsletter lists the writer's contact email. Emails unlock from your plan's allowance, no bot checks.
- Keep saved lists. One list for newsletters to test, one for the ones you rebook.
- Send from built-in campaigns on Professional. Email rate requests to a new test list, or rebooking notes to your winners, from your own mailbox.
Media List doesn't track ad results or list newsletter rates, and it has no subscriber filter for newsletters. Your UTM links, codes and surveys do the measuring.
Basic at $99 a month covers search, saved lists and a monthly unlock allowance. Built-in email campaigns come with Professional at $399 a month. Start a 3-day trial, $0 today, and cancel anytime. Compare plans on the pricing page.
Buy direct, skip the middleman
Start your newsletter sponsorship list now
Search newsletters with contact emails, save a shortlist and ask for rates.
- Filter by category, country and language
- Unlock contact emails and save shortlists, from $99 a month
- Send outreach from built-in campaigns on Professional ($399 a month)
- 3-day trial, $0 today, cancel anytime
Questions, answered
How do I track a newsletter ad?
Give each newsletter its own UTM-tagged link, a unique promo code and, if you like, a vanity URL. Add a "How did you hear about us?" question after purchase. Then compare clicks, leads and sales per newsletter at 72 hours and again at 30 days.
What UTM parameters should I use for a newsletter ad?
Always set utm_source to the newsletter name, utm_medium to email and utm_campaign to your campaign name, all in lowercase. Use utm_content to tell apart two links or ad versions in the same email.
How do I measure newsletter advertising ROI?
Divide what you paid by sales to get cost per sale, then compare it with what a customer is worth. For example, $600 for 4 sales is $150 each, which is a 4x return if a customer is worth $600.
Why are newsletter open rates unreliable for ads?
Litmus reports over 50% of email opens happen on devices with Apple Mail Privacy Protection, which inflates opens. Judge ads on unique clicks, leads and sales instead.
How long should I wait to judge a newsletter ad?
Check clicks and early signups at 72 hours, the window beehiiv's ad network uses. Then check sales, code uses and survey answers again at about 30 days, or longer if your sales cycle is long.
Why doesn't the writer's click count match my analytics?
Publishers and analytics tools count differently. Some count every click, some filter bots and duplicates, and your analytics counts sessions. Agree in the insertion order on whose count you'll use.
Should I drop a newsletter after one bad send?
Not if the readers fit. One issue is a small sample, so run two or three sends, try new copy, and then decide based on cost per sale.
Related guides
- Newsletter Advertising Guide for Brands Buying Direct in 2026
- Newsletter Advertising Rates and CPM Benchmarks for 2026
- How Much Does It Cost to Advertise in a Newsletter
- How to Find Newsletters to Sponsor in Your Niche
- Newsletter Directory and Contact List for Advertisers
Sources
- beehiiv, Ad Network overview and FAQ, checked 2026-11-11
- beehiiv, product-seeding case study, 1006% ROAS (Apr 4, 2025), checked 2026-11-11
- beehiiv, Black Crow case study (Apr 5, 2025), checked 2026-11-11
- Litmus, Apple Mail Privacy Protection resources, checked 2026-11-11
- Google Analytics Help, URL builders and campaign parameters, checked 2026-11-11
- Google Analytics Help, Default channel group, checked 2026-11-11
- Dupple, What is a primary newsletter ad, checked 2026-11-11
- Morning Brew, Additional terms and conditions for insertion orders, checked 2026-11-11
- beehiiv, How much does a newsletter sponsorship cost (Nov 2025), checked 2026-11-11
- TLDR, Advertise with TLDR, checked 2026-11-11
Search 1.5 million+ media contacts
Start a 3-day free trial, $0 today. Plans from $99 a month, no contract.
Start
- Unlimited searches and lists
- 2,500 exports a month
- Unlimited searches and lists
- 10,000 exports a month, 5 active campaigns
- Unlimited searches and lists
- 25,000 exports and unlimited campaigns
- Cancel anytime from your billing page
- Bounced emails replaced free
- Cancel before to pay nothing.
Want follow-ups sent for you?
PayPal is not available for this plan. Please pay by card.
You'll confirm the subscription in a PayPal window.Confirming your payment
This takes a few seconds. Please keep this window open.