TLDR;
- Your situation is extremely common, especially after all the privacy updates like iOS14. You shouldn't be worried, but you absolutely should fix it.
- Meta's dashboard is under-reporting your conversions because of things like ad blockers and tracking prevention in browsers. It's not a reliable source of truth on its own.
- The fix involves two main things: implementing Meta's Conversions API (CAPI) to send data server-side, and using UTM parameters to track your real results in your own email dashboard.
- CAPI gives Meta's algorithm more accurate data to optimise with, which can improve your campaign performance over time.
- This letter includes an interactive calculator to help you see the difference between what Meta reports as your Cost Per Acquisition and what your actual CPA is.
Hi there,
Thanks for reaching out about the conversion tracking discrepancy you're noticing between your email dashboard and Meta's Ads Manager. Your situation isn't unique at all – in fact, it's one of the most common issues we see. You're right to question it, but it's not something to be overly worried about. It is, however, something you need to get a handle on if you want to scale your ads properly.
The short answer is that the numbers in your email dashboard are likely closer to the truth, and the numbers in Meta's dashboard are almost certainly wrong. I'll walk you through why this happens and what the proper fix is.
Why Meta's Dashboard is Lying to You...
For years, everyone relied on the Meta Pixel. It's a bit of code on your website that fires in the user's browser, telling Facebook "hey, this person just signed up". It was simple and it worked pretty well. But that's all changed now.
The problem is that this whole system is browser-based, which makes it incredibly fragile. Think about everything that can get in the way:
- iOS14/App Tracking Transparency (ATT): This was the big one. Apple now asks users if they want to be tracked by apps like Facebook. A huge number of people say "no", which means the Pixel is effectively blocked for them.
- Ad Blockers: More and more people use ad blockers, and many of these tools specifically block tracking scripts like the Meta Pixel from even loading.
- Browser Privacy Settings: Browsers like Safari (ITP) and Firefox (ETP) have built-in tracking prevention that can interfere with or block the Pixel's ability to work correctly.
- Cookie Consent Banners: If someone doesn't accept your cookie policy, the Pixel might not be allowed to fire.
So when you see 10 signups in your system but only 5-6 in Meta's, it's because for 4-5 of those people, something in the chain broke and the Pixel never managed to send the signal back to Meta. You got the signup, but Meta is blind to it. This isn't just bad for reporting; it's also starving Meta's algorithm of the data it needs to find more people like your actual subscribers. It's trying to optimise your campaigns with only half the picture.
(Pixel Loads)
We'll need to look at building a more reliable tracking system...
So, how do we fix this? We can't force people to turn off their ad blockers or accept tracking. Instead, we need a more robust way to send data to Meta that doesn't rely on the user's browser. This is where the Conversions API (CAPI) comes in.
Think of it like this: the Pixel is a messenger running through a busy, chaotic city (the browser) where it can get lost, blocked, or intercepted. CAPI, on the other hand, is like a secure, direct phone line from your website's server straight to Meta's server. When someone signs up for your newsletter, your server (which knows for a fact that a signup happened) can use this direct line to tell Meta about it.
This bypasses the browser entirely. It doesn't matter if the user has an ad blocker, is using an iPhone with tracking turned off, or is browsing in the most private mode imaginable. Your server saw the signup, and your server reports it. It's far more accurate and reliable.
The best practice now is to use both the Pixel and CAPI together. Meta is smart enough to 'deduplicate' events, so if both the Pixel and CAPI report the same signup, it only counts it once. This gives you the best of both worlds: the fast, real-time signals from the Pixel when it works, and the reliable, comprehensive data from CAPI as a backup. We've seen with loads of our clients, particularly in software where signups are everything, that getting CAPI implemented is non-negotiable. For one campaign we worked on that drove over 45,000 signups, a 50% tracking error like yours would mean we were blind to over 22,000 conversions. You can't make good decisions with that kind of data gap.
I'd say you need to become your own source of truth...
Even with CAPI, I would never fully trust the numbers inside any ad platform's dashboard. Your goal should be to make your own email platform dashboard the ultimate source of truth. The way you do this is with UTM parameters.
UTMs are just little tags you add to the end of your website URL in your ads. They tell your own analytics and email systems exactly where a visitor came from. They look like this:
?utm_source=facebook&utm_medium=cpc&utm_campaign=newsletter_promo
You can set these up directly in the Meta Ads Manager at the ad level. You don't have to manually create them for every ad. You can use dynamic parameters, so Meta will automatically fill in the campaign name, ad set name, and ad name for you. It's a setup that takes a few minutes but pays off forever.
When someone clicks your ad and signs up, most email marketing platforms (like Mailchimp, ConvertKit, etc.) can be configured to capture these UTM tags and save them with the new subscriber's contact info. Now, you can log into your own system and see with 100% certainty:
"We got 10 signups today. 7 came from the 'Newsletter Promo' campaign, 2 from the 'Retargeting' campaign, and 1 came organically."
This is gold. This data is undeniable. It's not an estimate from Meta; it's the ground truth from your own database. This is how you should be judging which campaigns are actually working and where to put your budget, not by looking at the flawed numbers inside Ads Manager.
You probably should calculate your real performance...
The biggest danger of relying on Meta's numbers is that you get a completely skewed idea of your performance. If Meta reports 5 signups for £50 spend, you think your Cost Per Acquisition (CPA) is £10. You might even turn the campaign off, thinking it's too expensive.
But if you look at your email list and see you *actually* got 10 signups for that same £50 spend, your real CPA is only £5. Suddenly that "expensive" campaign looks like a winner. You've been making decisions based on faulty data.
To make this clearer, I've built a small calculator for you. Play around with the sliders to see how big the difference can be between the reported CPA and your actual CPA.
You'll need a better way to optimise...
Once you've got this all set up, you'll have a much clearer picture. The main advice I have for you from here is to operate on a two-track system:
- For Algorithmic Optimisation: Get CAPI working. This ensures the data being fed back into Meta's system is as rich and accurate as possible. This allows the algorithm to do its job better and find you more of the right people at a better cost. This is about making the machine smarter.
- For Strategic Optimisation: Use your email dashboard, powered by UTM data, as your single source of truth for making budget decisions. If Campaign A has a true CPA of £5 according to your data, and Campaign B has a true CPA of £12, you know where to shift your money, regardless of what Meta's dashboard might be telling you. This is about you making smarter decisions.
This approach takes the guesswork out of it. We do this for all our clients, from eCommerce stores to B2B SaaS companies. You trust the machine to optimise on the data you give it, but you trust your own data to make the big calls. It's the only reliable way to manage campaigns in today's messy tracking enviroment.
I've detailed my main recommendations for you below:
| Problem | Recommended Solution | Why It Works |
|---|---|---|
| Meta Under-reports Conversions | Implement the Meta Conversions API (CAPI) | Sends data directly from your server to Meta, bypassing browser-based blockers. This gives the algorithm more accurate data to optimise with. |
| No Reliable "Source of Truth" | Use UTM Parameters on all ads | Allows you to track the exact source of every single signup within your own email platform, which is 100% accurate. |
| Making Decisions on Bad Data | Calculate your 'Actual CPA' | Use your true signup count from your own dashboard against your ad spend to understand your real performance and make better budget decisions. |
| Inefficient Ad Optimisation | Adopt a two-track optimisation system | Use the improved CAPI+Pixel data to feed the algorithm, but use your own UTM-based data to make high-level strategic decisions about campaigns and creative. |
Getting your tracking right is the absolute foundation of successful paid advertising. Without it, you're just guessing. While some of this can seem a bit technical, it's the difference between a campaign that you have to turn off because it 'looks' unprofitable and one that you can confidently scale because you know the real numbers.
This is often where expert help makes a big difference. It's not just about creating nice-looking ads; it's about building the data infrastructure underneath that allows those ads to be truly effective. If you'd like to chat through your specific setup and get a clear plan of action, we offer a completely free, no-obligation initial consultation where we can take a look together.
Hope this helps!
Regards,
Team @ Lukas Holschuh