How iOS 14+ Broke Your Shopify Ad Tracking (And How to Fix It)
In April 2021, Apple released iOS 14.5 with a feature called App Tracking Transparency (ATT). It was a single popup that asked iPhone users: “Allow this app to track your activity across other companies’ apps and websites?”
Most people said no.
That one change broke the digital advertising ecosystem that Shopify merchants had relied on for years. If you’ve noticed your Facebook ad performance tanking, your reported ROAS becoming unreliable, or your retargeting audiences shrinking — iOS 14 is a major reason why.
But the situation isn’t hopeless. There are concrete steps you can take to get reliable tracking back. Let’s break down what happened, what it means for your store, and what to do about it.
What iOS 14+ Actually Changed
Before ATT
Before ATT, when a customer clicked your Facebook ad on their iPhone and visited your store, Facebook could:
- Track them across your website using the Facebook Pixel (a cookie-based tracker)
- Match their website activity to their Facebook profile
- Report exactly which ads led to which purchases
- Build detailed retargeting audiences based on browsing behavior
- Optimize ad delivery based on who was buying
This worked because Facebook’s pixel could set third-party cookies and its SDK in the Facebook/Instagram apps could track cross-app behavior using Apple’s IDFA (Identifier for Advertisers).
After ATT
Now, when an iPhone user opens Facebook or Instagram, they see a prompt asking if they want to allow tracking. Roughly 75-85% of users opt out.
For those users:
- Facebook can’t track what they do after leaving the app
- The pixel still fires, but Facebook can’t reliably connect the website visit to the Facebook user
- Retargeting audiences are smaller and less accurate
- Conversion tracking becomes partial — Meta can see some purchases but misses many
- Ad optimization suffers because the algorithm has less signal to work with
The Impact on Shopify Stores
Your Reported Numbers Went Haywire
Before iOS 14, if you spent $1,000 on Facebook and the platform reported 40 purchases at 4x ROAS, you could trust those numbers were in the right ballpark. Maybe off by 10-15%, but directionally correct.
After iOS 14, that same campaign might actually drive 40 purchases, but Meta can only directly observe 20 of them. It uses statistical modeling to estimate the rest. Some days the model is close. Some days it’s way off. Your reported metrics now swing wildly from day to day, making it nearly impossible to make quick optimization decisions.
Retargeting Got Less Effective
Retargeting used to be the cheat code of ecommerce advertising. Show ads to people who visited your store but didn’t buy. Conversion rates were great, ROAS was high, life was good.
With ATT, your retargeting audiences shrank dramatically. Facebook can’t reliably track which iPhone users visited your store, so it can’t add them to your retargeting audience. Your retargeting pool might be 40-60% smaller than it was pre-iOS 14, and less accurate even for the users it does include.
Lookalike Audiences Degraded
Lookalike audiences rely on Facebook having detailed data about your best customers. With less data flowing from iOS users, the “seed” audience for your lookalikes is less accurate, and the resulting lookalike audience is broader and less targeted.
Many merchants have noticed that their lookalike audiences, which used to be their best performers, now perform more like broad targeting.
Attribution Delays
Meta now batches iOS conversion data through Apple’s SKAdNetwork framework, which introduces delays of up to 72 hours. This means your campaign performance data isn’t available in real-time anymore. You might make a decision to scale or cut a campaign based on Day 1 data, only to see the numbers change significantly when delayed conversions come in.
What Meta Did to Compensate
Meta hasn’t been sitting idle. They’ve rolled out several changes to cope with the data loss:
Conversions API (CAPI)
CAPI sends conversion data server-to-server, bypassing browser-level tracking entirely. When a purchase happens on your Shopify store, the server sends the event directly to Meta’s servers, including customer information (hashed email, phone number) that Meta can use to match the conversion to a user.
Shopify has a built-in CAPI integration through the Meta sales channel. Setting it up significantly improves Meta’s ability to see your conversions.
Limitations: CAPI helps Meta see more conversions, but Meta still uses its own attribution model (7-day click / 1-day view). More visibility doesn’t equal more accurate attribution.
Aggregated Event Measurement (AEM)
AEM limits the number of conversion events per domain (8 total) and prioritizes them. If a customer views content, adds to cart, initiates checkout, and purchases — only the highest-priority event (purchase) gets reported for iOS users.
This was Meta’s compromise with Apple’s framework. It provides some signal, but far less than the pre-ATT world.
Statistical Modeling
Meta now uses machine learning models to estimate conversions from iOS users who opted out of tracking. These modeled conversions appear in your Ads Manager as regular numbers — there’s no way to distinguish modeled from observed conversions.
The model is trained on data from users who do allow tracking, and it extrapolates patterns to estimate what opt-out users are doing. Accuracy varies significantly by store, product type, and audience composition.
How to Fix Your Tracking
Here’s the good news: the tracking problem is solvable. The solution just looks different from the old pixel-based approach.
Fix 1: Set Up Conversions API
If you haven’t already, set up Meta’s CAPI through Shopify’s Facebook & Instagram sales channel. This is the bare minimum.
- Go to Shopify Admin → Sales Channels → Facebook & Instagram
- Make sure your pixel and CAPI are both connected
- Verify events are firing correctly in Meta’s Events Manager (look for both “Browser” and “Server” events)
- Enable automatic advanced matching (sends hashed customer data for better matching)
Fix 2: Use UTM Parameters on Every Ad
This is the most important fix, and it works regardless of iOS, cookies, or any privacy framework.
UTM parameters are first-party data embedded in the URL. When someone clicks your ad with ?utm_source=facebook&utm_medium=cpc&utm_campaign=spring_sale, that information travels with them to your store. No cookies needed, no third-party tracking, no opt-in required.
iOS privacy changes don’t affect UTM parameters because they’re not tracking — they’re just data in a URL. Apple’s ATT popup has zero impact on UTM-based attribution.
Add UTMs to every Facebook ad. Use Meta’s dynamic parameters for automatic population:
?utm_source=facebook&utm_medium=cpc&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}
Fix 3: Capture UTMs at the Order Level
UTMs in the URL only help if you save them when the customer buys. You need a system that:
- Reads UTM parameters when a visitor lands on your store
- Persists them through the browsing session (even across page loads)
- Attaches them to the Shopify order at checkout
This gives you deterministic, first-party attribution data on every order — something that iOS privacy changes simply cannot break.
You can build this with custom JavaScript and cart attributes, or use a Shopify app. Detectly does this automatically using Shopify’s theme app extensions and web pixel API, writing UTM data to order metafields that you can see directly in your Shopify admin.
Fix 4: Build Your Own Attribution View
Once you have UTM data on every order, you no longer need to trust Meta’s modeled numbers. Export your Shopify orders with their UTM metafields and calculate your own metrics:
- Real ROAS: Revenue from orders with
utm_source=facebookdivided by your Facebook ad spend - Real CPA: Facebook ad spend divided by number of orders with
utm_source=facebook - Campaign-level performance: Group orders by
utm_campaignto see which campaigns actually drive revenue
This is your ground truth — based on actual clicks from actual people who actually bought.
Fix 5: Diversify Your Measurement
Don’t rely on any single tracking method. Use multiple approaches and look for consensus:
| Method | What It Tells You | Reliability Post-iOS 14 |
|---|---|---|
| Meta Ads Manager | Modeled conversions + attribution | Low-Medium |
| Google Analytics 4 | Session-based attribution | Medium (affected by consent/blockers) |
| UTM order data | Click-to-purchase tracking | High (first-party, not affected) |
| Blended ROAS | Total revenue / total spend | High (simple but effective) |
When your UTM data and blended ROAS agree but Meta’s numbers look different, trust the first-party data.
The Bigger Picture: First-Party Data Wins
iOS 14 was just the beginning. Google has been working on phasing out third-party cookies in Chrome (delayed multiple times, but directionally inevitable). Privacy regulations are expanding globally. Consumers are increasingly privacy-conscious.
Every trend points in the same direction: third-party tracking is dying. First-party data is the future.
UTM parameters are first-party data. Customer email addresses are first-party data. Purchase history is first-party data. These are things that privacy changes can’t take away from you because the customer is giving them to you directly through their interaction with your store.
The merchants who will thrive in this environment are the ones building their measurement systems on first-party data today. Not because the old way is dead (it’s not — pixel tracking still works for some users), but because the old way is becoming unreliable enough that you can’t base spending decisions on it alone.
What To Do This Week
If you take away one thing from this article, let it be this: stop relying solely on Meta’s pixel for attribution and start capturing UTM data on your orders.
Here’s your action plan:
- Today: Add UTM parameters to your top-spending Facebook campaigns
- This week: Set up order-level UTM capture (app or custom code)
- Next week: Compare your first week of UTM data to Meta’s reported numbers
- Ongoing: Make spending decisions based on your first-party data, not platform estimates
The iOS tracking problem isn’t something Apple is going to reverse. It’s the new normal. The sooner you adapt your measurement approach, the sooner you’ll have confidence in your numbers again.
Ready to see your true ROAS?
Detectly tracks every UTM, attributes every Shopify order, and shows you which channels actually drive revenue.