If you run Facebook or Instagram ads for your business, there's a good chance your Ads Manager is showing you numbers that are off — sometimes by a lot.
This isn't a bug. It's not your fault. It's the result of a change Apple made to iPhone software in 2021 that broke how Facebook tracks conversions — and a lot of businesses are still making budget decisions based on the broken data.
Here's what happened, what it means for you, and how to get accurate numbers.
A quick background: how Facebook used to track sales
Before 2021, when someone clicked your Facebook ad on their iPhone and later bought something on your website, Facebook could track that entire journey. It worked through a small piece of code called the Facebook Pixel — a snippet of JavaScript installed on your website that communicates with Facebook's servers.
When the purchase happened, the Pixel would fire a "Purchase" event and send the information back to Facebook. Your Ads Manager would show you "200 purchases this week." You'd look at the cost per purchase, decide if the campaign was profitable, and adjust accordingly.
Simple, reliable (mostly), and the backbone of Facebook advertising for years.
What Apple's iOS 14 update changed
In April 2021, Apple released iOS 14.5, which added a popup on iPhones that asks users: "Allow [app name] to track your activity across other companies' apps and websites?"
The majority of iPhone users tapped "Ask App Not to Track." Which is totally fair — it's their phone.
But the consequence for advertisers is significant: when a user opts out, Facebook's Pixel can no longer track what happens after they click your ad. The purchase still happens. Your money still gets made. But Facebook never sees it.
Facebook has to estimate the missing conversions using statistical modeling. These estimates are optimistic — because Facebook's incentive is to show you that your ads are working so you keep spending.
The result: your Ads Manager is showing you inflated numbers for conversions, and possibly inflated ROAS. Some advertisers are missing 30–50% of their real conversion data.
Why this matters more than just "the numbers are off"
You might think: "OK, so my data is slightly wrong. I'll just run the ads and see if sales go up."
The problem is that Facebook's campaign optimization algorithm runs on conversion signals. It looks at which users are converting and shows your ads to more people like them.
When half your conversions are invisible to Facebook, the algorithm thinks your campaign is performing worse than it is. It shifts budget away from your best audiences toward wherever tracking still happens to work. You end up in a cycle where bad data causes bad optimization, which causes bad results — even if your product, offer, and creative are actually fine.
The three-layer fix that serious advertisers use
You can't force iPhone users to turn tracking back on. But you can build a system that captures click data independently, so you're not relying on Facebook's pixel at all.
Layer 1: UTM parameters on every ad
A UTM parameter is a small label you add to the end of your ad's destination URL. It travels inside the URL itself — not in a cookie — so it can't be blocked by iOS privacy settings.
It looks like this added to the end of your URL:
?utm_source=facebook&utm_medium=paid_social&utm_campaign=your_campaign_name
When someone lands on your site, Google Analytics reads these labels and records where the visitor came from. This works even when the Facebook Pixel can't fire.
Layer 2: Server-side click tracking
Before you paste your destination URL into Facebook Ads Manager, wrap it in a tracked short link. When someone clicks your ad, the click hits an independent tracking server before the user's browser even loads your landing page. No browser, no cookie, no pixel required.
You end up with an accurate click count that's completely separate from what Facebook reports.
Layer 3: Conversion & Revenue Tracking Script
To close the loop and calculate actual ROAS, add gometrify's Conversion & Revenue Tracking Script to your checkout success or order completion page. It reads the unique click ID forwarded from the short link and attributes the exact transaction value back to the specific Facebook campaign or ad.
How to actually set this up with gometrify
Step 1. Build your destination URL with UTM parameters using our Free UTM Builder.
Step 2. Take that tagged URL and create a tracked short link in gometrify. Create a free account here →
Step 3. Install the Conversion & Revenue Tracking Script on your store's thank-you page. Follow our Script Setup Guide for Shopify, WooCommerce, and Webflow.
Step 4. Paste the gometrify short link into your Facebook ad's destination URL field.
Step 5. Once your campaign is live, compare the numbers:
- gometrify dashboard: total clicks, conversions, and attributed revenue
- Google Analytics: sessions from
utm_source=facebook - Facebook Ads Manager: reported modeled conversions
Comparing these metrics gives you an honest, uninflated view of what your Facebook ad campaigns are actually doing — allowing you to spend budget where it actually drives revenue.