This article explains how Apple’s upcoming changes to the IDFA and forced rollout of SKAdNetwork threaten to destroy advertisers’ ability to optimize campaigns toward high value in-app behaviors. After reviewing the limitations imposed by SKAdNetwork, we explain how Worthy provides a solution. Using Worthy, advertisers will be able to develop custom lifetime value predictions optimized for performance on SKAdNetwork.

The Inevitable Death of the IDFA

Over the past decade, Apple has increasingly positioned the iPhone as the single best way to protect your privacy. Protecting user privacy has presented a constant challenge for the mobile advertising industry which has scrambled to shift their tracking methodologies as Apple has made it progressively more difficult to track users.

Before 2012, advertisers would measure their mobile campaigns using the iPhone UDID (Unique Device Identifier). The UDID was permanent, allowing advertisers to effectively track users forever. The UDID acted as a bridge across ad exposure and app install, allowing advertisers to deterministically identify which installs came from which ad exposure.

In 2012, Apple replaced the UDID with the IDFA (Identifier for Advertisers) to give users more control over their data while preserving advertisers’ ability to measure their campaigns. The IDFA is a semi-permanent identifier which the user can reset at any time under settings.

In 2016, Apple released the Limit Ad Tracking feature with iOS 10. This feature allowed users to globally opt-out of passing their IDFA to advertisers. Limit Ad Tracking presented a significant challenge to advertisers, but the impact was muted by the fact that Limited Ad Tracking requires users to actively opt-out.

While Limited Ad Tracking has grown in popularity, the majority of users haven’t taken the effort to opt-out. Currently the IDFA still mostly works as the lynchpin for deterministic attribution, with less accurate probabilistic attribution as backup when advertisers cannot use the IDFA.

Set against this context, it should have come as no surprise that Apple when Apple announced it was killing the IDFA. During its Worldwide Developer Conference in June 2020, Apple announced that every app developer would have to explicitly collect opt-in permission before collecting the IDFA. Under this new permission framework, advertisers will only collect the IDFA for an insignificant minority of users; after all, the vast majority of users will not agree to be tracked “across apps and websites owned by other companies” for an unclear benefit.

Apple’s announcement was a shot across the bow to the entire mobile app advertising ecosystem, threatening to destroy the common infrastructure which developers, advertisers and ad platforms rely on to track users across apps––a prerequisite for measuring and optimizing advertising campaigns.

While these changes would damage the entire mobile advertising industry, Facebook was uniquely threatened due to its dominance in mobile advertising. Not surprisingly, Facebook excoriated Apple, declaring that Apple’s move would force it to kill Audience Network on iOS, hurting small business during a global pandemic:

Today, Facebook shared how we’re addressing Apple iOS 14 changes, which includes not collecting the identifier for advertisers (IDFA) on our own apps on iOS 14 devices. This is not a change we want to make, but unfortunately Apple’s updates to iOS14 have forced this decision. We know this may severely impact publishers’ ability to monetize through Audience Network on iOS 14, and, despite our best efforts, may render Audience Network so ineffective on iOS 14 that it may not make sense to offer it on iOS 14 in the future. We understand that iOS 14 will hurt many of our developers and publishers at an already difficult time for businesses.

After receiving pressure from across the mobile advertising industry, Apple temporarily relented. On September 3rd 2020, Apple announced “to give developers the time they need to make the necessary changes...the requirement to use this tracking permission will go into effect early next year.” Most advertisers shifted their attention, but the IDFA is dying in early 2021 regardless of whether advertisers are ready.

Introducing SKADNetwork: the New Universal Framework for iOS Mobile Advertising

While Apple’s focus was consumer privacy, Apple needed to offer advertisers some way of measuring campaign performance without the IDFA. Apple's solution is SKAdNetwork: a framework that “helps advertisers measure the success of ad campaigns while maintaining user privacy”.

All Ad Networks––including Facebook and Google––must register with Apple, and follow the SKAdNetwork advertising process:

Diagram showing a user tapping an ad for app B inside of app A, then installing and launching app B, which triggers a conversion notification after app B calls one of two methods, and after the timer expires. The ad network receives the postback which it must verify.

Before we can analyze the new challenges SKAdNetwork imposes upon advertisers, it’s important to understand specifically what SkAdNetwork asks of advertisers.
Let’s break down each step of the SkAdNetwork process in more detail:

  1. An ad is created
  2. The ad network called ‘loadProduct’, which contacts Apple to determine the Ad and App to display in an app.
  3. The user taps on an ad
  4. The user goes to the app store
  5. The user installs the app
  6. When the installed app launches, the app has a choice

Option 1: the app calls registerAppForAdNetworkAttribution.This starts a 24 hour timer. When the timer expires, Apple will send a postback to the Ad Network within an additional 0-24 hours after the timer.

Option 2: call updateConversionValue. UpdateConversionValue creates a rolling 24 hour timer, meaning updateConversionValue can be called multiple times, each time resetting the 24 hour timer. However, the value given to updateConversionValue needs to be greater for each call to restart the timer. When the timer expires, Apple will send a postback to the Ad Network within an additional 0-24 hours after the timer.

7. The updateConversionValue function has some restrictions, notably that the value can only be an integer, 0 to 63.

8. Now, option 1 can be used in conjunction with option 2.

9. After the timer expires, Apple will send a postback to the Ad Network. This postback will contain:

  1. version
  2. 1.0 on iphones running ios 13 and earlier, 2.0 for ios 14 and potentially future versions
  3. ad-network-id
  4. An identifier of the ad network that served the ad
  5. campaign-id
  6. An integer between 1 and 100 representing the campaign associated with the ad that drove an install
  7. transaction-id
  8. A unique value for validation, used for deduplicating install validation messages
  9. app-id
  10. The id of the advertised product
  11. attribution-signature
  12. A signature provided by Apple for the Ad Network to use to verify the install was legitimate
  13. redownload
  14. True if the customer redownloaded and reinstalled the app
  15. source-app-id
  16. The id of the application that displayed the ad
  17. Conversion-value
  18. Optional, a value that provides more information about the install and aids in campaign optimization

The SKAdNetwork framework adds significant complexity into the advertising process in order to protect user data while still allowing advertisers to pass the ad networks an indirect signal to guide campaign optimization. The sudden universal forced adoption of SKAdNetwork will transform mobile marketing practices in a variety of ways and it threatens to destroy the modern advertiser’s most powerful tool: behavioral optimization.

How SKAdNetwork Limits Behavioral Optimization

In the early days of performance marketing, advertisers would optimize for the lowest cost per impression or click on a highly targeted audience. No longer.

Modern ad auctions are dominated by algorithmic media buyers who feed Facebook and Google the right stream of behavioral data to enable algorithms to optimize directly for the advertiser’s desired behavioral outcome. At its best, behavioral optimization enables advertisers to confidently invest cash into marketing in exchange for predictable behavioral outcomes.

While behavioral optimization is incredibly powerful, a weakness is that it cannot run without being fueled by a rich stream of behavioral data. When Apple rolls out SKAdNetwork, the framework will place severe limits upon the degree to which advertisers can send behavioral data to ad networks.

Under SKAdNetwork, advertisers will be limited to sending a single conversion postback per install. In this single postback, advertisers can pass Conversion Value, which can receive any defined integer value between 0 and 63. Advertisers will have these 6 bits to differentiate the lowest value installs from the highest value installs. Without access to direct behavioral data, the algorithms will need to optimize for Conversion Value as a proxy.

It only gets more confusing from here. Advertisers must fire the Conversion Value postback to the ad network, and Apple will forward the final Conversion Value to the Ad Network after a randomized 0-24 hour delay. While it is possible to update Conversion Value, each update triggers another randomized 0-24 hour delay timer before being received by the ad network. This is deeply problematic because the SKAdNetwork postback doesn’t include an install timestamp, and so each randomized interval creates a larger temporal gap between ad exposure and postback, making it increasingly difficult for ad networks to determine which ad—and which individual—drove which outcome. The obfuscation is by design: the very point is to prevent advertisers and ad networks from tracking individuals across apps.

In practice this means constantly updating ConversionValue and resetting the timer will harm campaign performance. After all, the less accurately ad networks are able to determine which ad exposure drove which outcome, the less that algorithms are able to optimize for outcomes. If advertisers hope to make behavioral optimization perform under these bizarre new temporal constraints, advertisers should aim to fire a Conversion Value once and as quickly as possible. Facebook and Google succeeded largely by making it easy for advertisers to use behavioral optimization. Thanks to Apple, the learning curve is about to increase dramatically.

In order to instrument Conversion Value effectively, advertisers will need to develop a method for correlating different patterns of behavior with different lifetime value outcomes; and then determine how to best map those value signals onto SkAdNetwork’s new 6 bit schema. Going forward mobile advertisers will succeed largely on the basis of this single, compressed lifetime value prediction signal. The better the predictive accuracy and the quicker the prediction, the more effectively Facebook and Google’s algorithms will be able to optimize toward the advertiser’s lifetime value.

If advertisers want to maximize their ability to succeed in this new reality, they will need to invest engineering resources into developing synthetic predictive lifetime value signals and a framework for testing signal iterations to improve ROAS. However this is easier said than done—most advertisers lack the internal engineering expertise to properly develop and operationalize lifetime value signals

The Worthy Solution

Using Worthy, any advertiser can easily develop predictive value signals optimized for SKAdNetwork. Worthy offers advertisers a platform for powering each step in the signal development and optimization cycle.

The process starts with data integration. Worthy has integrations with the largest app analytics platforms including AppsFlyer, Adjust, Branch, Amplitude. Opening the data stream takes minutes and allows Worthy to capture behavioral data. In order to ensure no PII is collected, Worthy’s systems proactively scan for and remove PII.

Before Worthy can create a signal, advertisers must set a North Star. Worthy asks the advertiser to explicitly set a definition of lifetime value. This involves both a behavioral outcome and a time window. For example, an advertiser might choose to select net profit generated within the first 30 days.

Once Worthy has a data stream and a North Star, it begins the training process. Worthy’s systems monitor every new user cohort and, in this example, identify net profit generated per user within the first 30 days. Worthy uses this behavioral data stream to train a machine learning model, which combines user characteristics and behavioral patterns to develop a powerful signal capable of predicting net profit by day 30 for each new user within 24 hours of install. This signal is translated into a 6 bit value and is designed to work within SKAdNetwork Conversion Value framework.

Worthy signals are explicitly designed to balance the inherent trade-offs between signal speed and accuracy on SKAdNetwork.  Generally, the sooner an advertiser fires a signal the less data informed and accurate the signal will be; but the longer the advertiser waits to fire the signal, the weaker the ad network’s ability to receive and use the signal to power campaign optimization. It’s a genuine technical challenge to predict user-level lifetime value on mere hours of post-install data.Advertisers can wait to collect more data before making a lifetime value prediction, but the longer they wait to send a Conversion Value signal (and every time they update the value), the less likely the ad network will be able to match the signal back to an individual ad exposure, preventing true algorithmic behavioral optimization from taking place. It follows that signal speed will become a differentiator in the ad auction; and advertisers who can pass an accurate signal most quickly will dominate the auctions.

Worthy signals fire once as quickly as possible while meeting baseline accuracy thresholds. To be able to predict future behavior as quickly as possible, Worthy processes every user-generated event, equating to more than 10s of millions of events per month for each partner on average. Worthy’s cloud data lake provides Worthy with low-latency access to user events, enabling Worthy to generate predictions for new users on-demand. Each custom signal is then passed through SKAdNetwork to ad networks as soon as possible.

The disruption caused by SKAdNetwork is an opportunity for savvy advertisers; because now that signal accuracy and speed are a point of differentiation, the best synthetic signals will enable advertisers to outperform their outmatched competitors. We can look to another auction-based industry for a clear example: just as high frequency traders dominated equities markets by executing trades a split second faster, so too will advertisers dominate attention markets by using machine learning models to send accurate campaign optimization signals to ad networks faster than their competitors.

The good news is that Worthy removes the barriers to SKAdNetwork signal development, allowing any advertiser to develop an accurate predictive lifetime value signal which fires quickly and is meticulously optimized for SKAdNetwork—all without hiring expensive specialists or investing any upfront resources.