When Apple rolled out App Tracking Transparency with iOS 14 in 2021, a lot of people declared Meta ads were finished. They weren't. But the way you measure them changed substantially, and a lot of independent artists are still running ads while looking at inaccurate numbers and making bad decisions because of it.
This article is about what actually happened, what data you can still trust, and how to triangulate real performance when your Meta dashboard doesn't tell the full story.
What iOS 14 Actually Did
Before iOS 14, Meta could track what happened after someone clicked your ad using a small piece of code (the Pixel) that lived in the browser. When someone clicked an ad, bought a print, and landed on your thank-you page, the Pixel fired and Meta recorded a conversion.
Apple's App Tracking Transparency update changed the default. iPhone users are now prompted to allow or deny tracking when they open apps. The vast majority deny it. When someone on iOS clicks your Meta ad and visits your store in Safari, Meta's browser-based Pixel often can't fire properly, so that conversion never gets reported back to Meta.
The result: Meta undercounts purchases. Depending on your audience (how many iOS users you're reaching), you may be missing 20-40% of actual conversions in your Meta reporting. In some cases, it's higher.
This means an ad set that Meta reports as a 1.8x ROAS might actually be delivering 2.4x. If you're cutting ads based on what Meta is showing you, you may be pausing campaigns that are actually profitable.
Why Conversions API Matters Now
The fix is the Conversions API (CAPI). Instead of relying entirely on browser-based tracking, CAPI sends conversion data directly from your server to Meta. It doesn't depend on the user's browser, their iOS settings, or whether they've opted out of tracking.
Server-side events bypass the restrictions that killed browser-based attribution. When someone purchases on your Shopify store, CAPI sends that event to Meta from the server - regardless of what's happening in their browser.
If you're on Shopify, setting up CAPI is straightforward. Shopify has a native Meta Channel integration that handles CAPI setup without any code. You go to your Shopify Admin, install or open the Meta Sales Channel, and it walks you through connecting your ad account. The server-side tracking activates automatically.
This doesn't fully restore the data you had before iOS 14. Some attribution is still lost. But it meaningfully reduces the undercounting - setting up CAPI typically leads to a meaningful increase in reported conversions, because events that were previously invisible are now being recorded.
Deduplication
One thing to watch: if you activate CAPI while your browser Pixel is still running, you might see some events fire twice - once from the browser and once from the server. Shopify's integration handles deduplication automatically, matching events by a shared event ID. If you're setting up CAPI manually or through a third-party integration, make sure deduplication is configured or you'll inflate your reported conversion numbers.
What Attribution Window to Use
Post-iOS, Meta's default attribution window is 7-day click, 1-day view. This means Meta will credit a conversion to your ad if the person clicked the ad within the last 7 days, or viewed it (without clicking) within the last day.
This is a reasonable default for most art store campaigns. The 7-day click window captures people who see an ad, leave, and come back to buy a few days later - which is genuinely common for art purchases, where people often need to check sizes, imagine it in their space, or wait until payday.
The 1-day view window is more controversial. It credits conversions to ads that someone saw but never clicked, which can inflate ROAS figures. For most Artvertise clients, we suggest checking your data with and without the view-through component to understand how much it's affecting your numbers.
In Ads Manager, you can switch attribution windows in the column settings. Always make sure you're comparing campaigns with the same attribution window - mixing 1-day and 7-day data makes comparison meaningless.
How to Triangulate Real Performance
Because Meta reporting is imperfect, you shouldn't make decisions based on one data source. Use three together:
1. Meta Reported ROAS
What Meta says your ads are returning. Useful as a directional signal, but likely undercounting by 20-40% depending on your audience.
2. Shopify Analytics
Your Shopify dashboard shows every transaction. It doesn't know which came from ads vs. email vs. organic, but it shows you total revenue. If Meta says you got 20 purchases and Shopify shows 35 purchases during the same period, you know Meta is significantly undercounting.
UTM parameters help here. When you build your ad URLs in Meta, add UTM tags (utm_source=meta, utm_campaign=spring-collection) and connect Google Analytics or Shopify's marketing reports. This gives you session-level data that complements Meta's attribution.
3. Marketing Efficiency Ratio (MER)
This is the most honest measure of whether your ads are working. The formula is simple:
MER = Total ad spend / Total Shopify revenue
If you spent $2,000 on Meta ads in a month and your store did $8,000 total revenue, your MER is 4x. That's your blended return on ad investment, across all channels, accounting for all the tracking gaps.
MER won't tell you which specific ad set is performing. But it tells you whether your overall advertising is generating a return - which is ultimately what matters.
Artco uses MER as the primary health metric for client accounts, alongside Meta-reported ROAS as a directional tool for optimisation decisions.
The Holdout Test: Measuring True Incrementality
The most rigorous way to understand whether your Meta ads are actually driving sales - versus just claiming credit for sales that would have happened anyway - is an incrementality test.
You split your audience in two. One group sees your ads as normal. The other group (the holdout) doesn't see your ads for a set period. You compare conversion rates between the two groups.
This tells you what percentage of your sales are truly driven by the ads, versus people who would have bought regardless.
Meta has a built-in Conversion Lift test for this. It requires a reasonable amount of traffic volume to get statistically significant results, so it works best for stores doing at least a few dozen sales per week. For smaller stores, a manual holdout - pausing ads for two weeks and comparing Shopify revenue to the same period the previous month - gives you a rough directional answer.
What Not to Do
Don't cut campaigns because Meta shows low ROAS. If your overall MER is healthy but a specific campaign looks weak in Ads Manager, the tracking gap is the likely culprit. Check Shopify revenue before making a decision.
Don't turn off CAPI to simplify your setup. Some people do this thinking it's causing duplicate events. It usually isn't, and having server-side tracking is essential for making reasonable attribution decisions.
Don't compare pre-iOS 14 ROAS numbers to current numbers directly. The measurement methodology changed. A 3x ROAS today, measured accurately, may be equivalent to what showed as 4x ROAS in 2020.
The tracking environment is more complicated than it was. But the ads still work. The key is knowing what you're looking at and not making panicked decisions based on incomplete data.
If you're not sure whether your Meta tracking is set up correctly or you want a second opinion on how to interpret your numbers, we offer a free audit that includes a Pixel health check. Book your free audit here.
Want this done for you?
Get a free audit →