skip to content

Search

The Day Tracking Broke: App Tracking Transparency and the End of the IDFA

Less than one minute read Updated:

How Apple's App Tracking Transparency turned the IDFA off by default in April 2021, why opt-in rates collapsed, and what it did to everyone measuring on the signal underneath.

On April 26, 2021, Apple shipped iOS 14.5 and turned off cross-app tracking for a billion iPhones.

The last post in this series ended on a cliffhanger, and it was not a literary device. The entire architecture underneath it, the neutral MMP, deterministic attribution, last-touch reconciliation across networks, rested on one assumption: the IDFA was there. A stable, readable, cross-app device identifier, on by default, present on almost every iPhone.

I sit on the data side of an ad business. At InMobi I own the system of record under a DSP and an exchange that measure ad events from 200M+ devices a day, and ATT is not an abstraction to anyone who has touched that pipeline. It is the line that splits every dataset into a before and an after.

So that’s today’s post.

Today’s Post

What actually changed on April 26, 2021, and what it broke, in six sections.

  • What App Tracking Transparency changed, mechanically
  • The one line Apple actually drew
  • The collapse, in the opt-in numbers
  • Four things that broke downstream
  • Why Apple did it, both readings at once
  • What it did to the data underneath an exchange

1. What actually changed: App Tracking Transparency

App Tracking Transparency (ATT) is the framework that requires an app to get a user’s explicit, opt-in permission before it can track them across apps and websites owned by other companies.

Before ATT, an app could read the IDFA freely. It was on by default. The only opt-out was a buried “Limit Ad Tracking” toggle that a minority of users had found and flipped. After ATT, reading the IDFA for cross-app tracking needs a yes.

The mechanism is one API call, requestTrackingAuthorization. When an app calls it, iOS shows a system prompt, the now-familiar “Allow [App] to track your activity across other companies’ apps and websites?” dialog, with two buttons: Ask App Not to Track and Allow.

One API call, one prompt, two outcomes requestTrackingAuthorization asks once. Decline and the IDFA does not degrade, it disappears. Scroll slowly, the sequence plays once and settles. App calls the API Wants the IDFA for cross-app matching one method, one prompt iOS shows the prompt "Allow tracking across other companies' apps?" two buttons, one default: no Taps Allow the minority answer opt-in, roughly 20-40% Ask Not to Track the majority answer dismiss counts as this too IDFA: a real value cross-app match still works stable, readable, joinable IDFA: all zeros not degraded, gone zeroed out, no exceptions the app's request the allow path, still readable the default path, zeroed out
Two buttons, two outcomes. Decline does not degrade the IDFA, it zeroes it. (animates as you scroll to it) PNG ↓

Two details make this a collapse and not just friction. First, it is opt-in, not opt-out. The path of least resistance, dismissing the prompt or never being asked at all, yields no tracking. Second, if the user does not grant permission, the IDFA returns all zeros, 00000000-0000-0000-0000-000000000000. Not a degraded ID. Nothing.

Apple’s wording was deliberate. The prompt does not say “improve your ad relevance.” It says track, paired with across other companies’ apps and websites. That framing tells the user that saying yes means being followed by strangers, and most people said no.

2. The line Apple actually drew

The definition of “tracking” is narrower than most people assume, and the narrowness is the whole point.

Apple’s definition covers linking user or device data collected in your app with data collected elsewhere, for advertising or data-broker purposes, across companies. Measuring what users do inside your own app is not tracking. A game can log its own players’ levels and purchases all day with no prompt required.

Linking your app’s data to another company’s data for ad targeting or measurement is tracking. Reading the IDFA to match a user against an ad network’s profile needs the prompt, because the IDFA exists specifically to do cross-company linking.

Apple's line is who's data, not whether you measure First-party measurement inside your own app stays wide open. Cross-company linking through the IDFA needs a yes. Matched rows, same question asked of each side. INSIDE YOUR OWN APP ACROSS COMPANIES, VIA THE IDFA Measuring your own users' own behaviour inside your own app Linking your app's data with data another company collected, for ads what it is A game logs its own players' levels and purchases Read the IDFA, match it to an ad network's profile of the same user example None, this was never gated requestTrackingAuthorization, opt-in prompt required prompt required Not tracking Tracking, needs a yes
First-party versus cross-company is the whole line. Measurement itself was never the target. PNG ↓

The line is first-party versus cross-company, and it is why first-party data strategies expanded so fast afterward. They sit on the legal side of the line Apple drew.

3. The collapse, in the opt-in numbers

So how many users tapped Allow?

Industry estimates settled into a broad 20 to 40% range, with social apps often at the low end and apps where users saw a genuine value exchange higher. Pin one number on it and you will be wrong for some app and right for another. The direction is what matters.

The readable IDFA went from present on roughly three-quarters of devices, since about a quarter of users had already opted out through Limit Ad Tracking, to present on something like a quarter to a third of them.

Three-quarters of devices, then a quarter to a third Share of iOS devices carrying a readable IDFA, before and after ATT shipped. Bar length is proportional to share of devices; both bars share the same scale. Before ATT ≈75% After ATT 25-33% Before ATT, about a quarter had already opted out through Limit Ad Tracking. After ATT, opt-in settled into a broad 20 to 40% range.
Not signal getting weaker. Signal disappearing, for most devices. PNG ↓

Sit with what that does to deterministic attribution. The MMP from the last post could only make a confident, deterministic call when the click and the install carried the same hard ID. With the IDFA zeroed out on most devices, that match became impossible for the majority of installs. The gold-standard method did not get weaker. For most users it stopped existing.

The fallback, probabilistic fingerprinting from an earlier post in this series, got dragged into the spotlight as the only thing left. Except Apple explicitly forbade fingerprinting as an ATT circumvention. So the fallback was now both the only option and against the rules. That tension defines everything downstream.

4. Four things that broke downstream

Loss of signal is too clean a phrase for what actually happened. Four concrete breaks.

Retargeting broke. Retargeting depends on recognizing one specific user across apps, showing a shoe ad to the person who abandoned a cart in the shopping app. No cross-app ID means no recognition, and app-to-app retargeting largely collapsed on iOS overnight.

Optimization lost its feedback loop. The real value of an MMP was optimizing toward post-install quality, purchases, retention, revenue, not raw installs. That optimization learns by tying outcomes back to the ads and audiences that produced them. Sever the identity link and the algorithm goes partly blind. It can still see that installs happened. It loses the thread connecting one impression to one downstream purchase, and models tuned on deterministic signal got worse quietly, which is the dangerous kind.

Small advertisers took the hardest hit. A large brand can afford data scientists and incrementality testing to work around degraded signal. A business running app-install campaigns on a few thousand dollars a month cannot. It relied on the platforms’ automated optimization to find converting users cheaply, and that automation depended on exactly the signal ATT removed.

Meta went to war, in public. Meta ran full-page newspaper ads, published blog posts, and told investors that ATT would cost it real revenue, with figures in the billions cited. Its argument, roughly: we are standing up for small businesses that depend on personalized advertising to compete. Apple’s reply, roughly: we are standing up for a user’s right not to be tracked. Both framings carried truth and self-interest in unequal measure, which is why the fight ran so hot.

5. Why Apple did it, both readings at once

The tempting move is to pick a villain. The honest read holds two things true at once.

The privacy case is genuine. Cross-app, cross-company tracking through a persistent device ID was invisible to most users, who had never meaningfully consented to being followed across the apps on their phone. Giving people a legible choice, with the default set to no, is a defensible position, and Apple had been building a privacy brand for years before ATT arrived.

The competitive dynamics are equally real. Apple weakened a cross-company identity mechanism its rivals depended on while continuing to run its own growing App Store search ads business, which sits inside Apple’s first-party walls and is not gated by the same prompt. Apple also controls SKAdNetwork, the replacement plumbing covered in the next post, which gives it leverage over how measurement works at all. Regulators in multiple jurisdictions opened inquiries into that exact asymmetry.

My own view, from the data side: the privacy intent is real and the competitive benefit to Apple is real, and you do not have to resolve the tension between them to work in this industry. You have to hold both and build accordingly.

6. What it did to the data underneath an exchange

Here is the part I see directly. When you operate the data layer beneath a DSP and an exchange, ATT does not just change one metric. It changes the shape and the trustworthiness of the entire dataset.

The deterministic key vanishes for most iOS traffic. Joins that used to be exact, this impression, this device, this later conversion, become impossible or probabilistic for most iOS events. Every downstream calculation has to be honest about which records still carry an identifier.

One average, two populations underneath it Every dot is a slice of iOS traffic. Colour means the row still carries a working IDFA. The right panel is not weaker signal, it is mostly no signal. Opt-in minority Still looks like the old world full deterministic signal, IDFA intact Joins to a later purchase stay exact Opt-out majority A near-anonymous fog most rows: no id, join is impossible A few rows still opted in, scattered Average the two together and you get a confidently wrong number. Reason about coverage as two populations, not one blended rate.
One average, two truths underneath it. Blend the populations and you get a confidently wrong number. PNG ↓

Coverage becomes bimodal. A minority of iOS users, the opt-in Allow group, still look like the old world, full deterministic signal. The majority look like a near-anonymous fog. Treating the average as if it were uniform is how you get confidently wrong conclusions, so the data has to be reasoned about as two populations, not one.

Aggregate and modeled measurement replaces row-level truth. When you cannot follow individuals, you lean on aggregate counts, statistical modeling, and incrementality experiments to recover directional truth. The error bars get wider, and a real share of the job becomes communicating that uncertainty honestly instead of dressing it up as a confident dashboard.

The blunt summary: post-ATT, a large share of the events flowing through an iOS ad pipeline arrive without the identifier that used to make them legible. You are measuring a billions-event-a-day system on a fraction of the resolution it used to have, and the entire craft shifts from counting to estimating.


Takeaways

The day tracking broke ATT and the end of the IDFA One prompt, one opt-in collapse, four downstream breaks, and a shift to estimation Hoshank Ailani · hoshank.vercel.app 1. The mechanism 1 App calls requestTrackingAuthorization 2 iOS shows the system prompt, once 3 Allow keeps the IDFA readable Decline zeros it, no exceptions April 26, 2021: iOS 14.5 ships, default flips to no Opt-in is the default. Dismissing the prompt counts as no, the same as tapping decline. 2. The line Apple drew INSIDE YOUR APP ACROSS COMPANIES no prompt, ever gated prompt required, opt-in a game logs its own players reads IDFA, joins to a network not tracking tracking, needs a yes The line is first-party versus cross-company, not measurement versus no measurement, which is why first-party strategies expanded fast. still legal, no prompt: your own analytics, your own funnel 3. The opt-in collapse 75% → 25-33% share of devices with a readable IDFA, before vs after Opt-in settled into a broad 20-40% range Social apps sat at the low end of that range Apps with a real value exchange sat higher Deterministic matching died for most installs The gold-standard method did not get weaker. For most users, it stopped existing. fingerprinting, the fallback, was ruled out by Apple too 4. Four breaks, one shift Retargeting: no cross-app id, no recognition Optimization: the feedback loop went blind Small advertisers: hit hardest, fewest workarounds Meta: fought back in public, billions cited Counting became estimating Aggregate models and incrementality tests replace row-level truth for most iOS traffic coverage is bimodal: full signal for the opt-in minority, near-anonymous fog for the opt-out majority Wider error bars, and saying how wide honestly is now part of the job. ATT did not weaken measurement. It made most of it stop existing. The craft shifted from counting individual conversions to estimating aggregate ones, with the error bars named out loud. Full post: hoshank.vercel.app/posts/adtech-track-ios-privacy-att Takeaways
The whole post on one card. Save it, share it, argue with it. PNG ↓

Six panels, one per section. The date at the top is April 26, 2021, and everything else on the card follows from it.

Final Words

Apple did not take away the IDFA and walk off. It proposed a replacement, a privacy-preserving, aggregate, Apple-controlled attribution system called SKAdNetwork, built to tell advertisers that a campaign worked without revealing which user converted. Whether SKAN filled the crater it was meant to fill is a genuinely contested question, and unpacking it is the next post in this series: SKAdNetwork and the Aggregated-Attribution Era.

After that, we look at what the industry built when SKAN proved insufficient on its own, the workarounds, the probabilistic gray zone, and the rise of privacy-safe identity alternatives. The IDFA is gone for most users. The question that defines everything downstream is what you measure with once your measuring instrument has been taken away.

Reply and tell me if your own numbers matched the 20 to 40% range. I am collecting real opt-in figures for a follow-up.

Cheers, Hoshank