Apple’s WWDC developer conference takes place this week: the keynote was held on Monday, and various developer-related sessions are being presented throughout the rest of the week. The keynote event is utilized each year to unveil new consumer-facing and developer-relevant hardware and software functionality. Digital advertisers have grown accustomed to tuning into the keynote with great trepidation: App Tracking Transparency (ATT), the privacy policy that confounded the entire digital advertising landscape, was introduced at WWDC 2020, and Hide My Email and Private Relay, which similarly instigated tremors across the digital economy, were introduced at WWDC 2021.
But new consumer-facing privacy features were conspicuously, surprisingly absent from the WWDC keynote this year. For an overview of what was announced, see coverage from Ben Thompson and The Verge.
Apple’s updated SKAdNetwork documentation has been published! Apple has added four new features: Multiple conversions, Hierarchical conversion values, Hierarchical source identifiers, and SKAdNetwork attributions for web. More detail in a thread (1/X)
— Eric Seufert (@eric_seufert) June 7, 2022
But Apple did unveil — albeit cryptically, in the Platform State of the Union presentation that followed the WWDC keynote — new functional additions its SKAdNetwork measurement framework that will be introduced in the next major point release, which is SKAdNetwork 4.0. Apple is hosting a dedicated What’s New in SKAdNetwork? developer session on June 8th, the day this post is going live. But yesterday, June 7th, Apple updated its SKAdNetwork documentation to include detail on the new features being rolled out in SKAdNetwork 4.0.
The timing of this article is somewhat awkward, as I’m writing it ahead of the developer event and thus without the benefit of the additional context it will surely provide. But with only the guidance of the updated SKAdNetwork documentation, the changes being introduced seem substantial and important. They include four major new pieces of functionality.
Hierarchical source identifiers
This will expand the campaign ID field in the SKAdNetwork postback to potentially allow for a second, two-digit (eg. 100 possible values) parameter to be transmitted that can include free-form attribution context such as, “campaign values, ad placement, or type of ad creative.”
Recall that the current two-digit campaign ID parameter effectively limits the number of pairings of ad creative and audience targeting settings that can be combined and run in a live campaign, given that ad networks must track performance by a specific campaign ID. Also keep in mind that the SKAdNetwork timer system dictates that some number of these campaign IDs will be unavailable and “held in reserve” at all times given the random delay of postback delivery. I discuss why this campaign ID limitation is problematic in Creative paralysis: ad creative production and testing in iOS 14. And in Dear Apple: These changes will improve SKAdNetwork for advertisers, which I published in July 2020, I suggest that increasing the SKAdNetwork campaign ID limit from 100 to 1,000 would unlock meaningful performance potential given the increased surface area for campaign experimentation. What Apple is doing with hierarchical source identifiers is effectively increasing the potential campaign ID limit to 10,000 (100*100).
Worth noting: the hierarchical source identifier allows for four digits to be transmitted only if the privacy threshold for the campaign is met. The privacy threshold is some number of installs for a campaign, but Apple has never clarified how that is calculated, or if it is static or dynamic. If the privacy threshold isn’t met for a campaign, then only two digits are available for the campaign ID, meaning only 100 values can be transmitted, reverting its functionality back to what is possible currently. This means the availability of campaign IDs scales with ad spend: for high levels of installs (and thus ad spend), much more campaign context is available, and so the limitations that currently exist that prevent advertisers from spending as much as they can with full insight to performance will be eradicated with this new feature.
Hierarchical conversion values
This is a functional improvement that will allow for a limited-signal conversion value to be sent in the SKAdNetwork postback when the privacy threshold for that campaign is not met. Currently, campaigns driving low numbers of installs can’t be evaluated for ROAS on the basis of conversion value accounting because no conversion value is provided when a campaign doesn’t satisfy the privacy threshold (I provide a framework for how to instrument conversion values for ROAS calculation in How to scale and optimize marketing spend with SKAdNetwork).
This limitation — that conversion values aren’t transmitted when the privacy threshold for a campaign isn’t met — has created a chicken-and-egg problem for many advertisers: campaigns lack the conversion values required to calculate ROI because they are low scale, but the campaigns can’t be scaled because ROI can’t be calculated.
With hierarchical conversion values, a “coarse-grained” value can be set that will be transmitted regardless of whether the campaign satisfies the privacy threshold or not. The set of possible “coarse-grained” values is: high, medium, low. One could imagine using these values to capture the likelihood that a user ultimately makes a purchase, or the estimated bucketed LTV value of a user mapped to some range of dollar amounts, or really any number of categorical variables with three potential values. For campaigns that do meet the privacy threshold, the same six-bit (ie. 64 potential values) conversion value format, which is classified as “fine-grained” in this new configuration, will be used and transmitted in the postback. More information on conversion values can be found in this QuantMar thread.
Multiple conversions
This feature is, to my mind, the most exciting of the four. With multiple conversions, an advertiser can receive up to three postbacks per install, each of which is anchored to a specific attribution window (0-2 days, 3-7 days, and 8-35 days), each of which can include multiple engagements. Apple indicates in its documentation that the SourceID, SourceAppID, and coarse-grained conversion values are conditional in the second and third postbacks on the privacy threshold being met.
SKAdNetwork attributions for web
This feature feels long overdue and allows web ads that direct to the App Store to be attributed through SKAdNetwork.
Privacy with a Purpose
The new set of features added to SKAdNetwork in the 4.0 point release provides a reason for genuine optimism around the long-term utility of SKAdNetwork and the ability for ad networks and ad platforms to improve campaign performance using it. Further, these improvements to SKAdNetwork might provide Apple with the air cover it needs to begin policing device fingerprinting in earnest. It’s possible that Apple felt compelled to ignore rampant device fingerprinting precisely because SKAdNetwork could not support the measurement precision required to grow app audiences through direct response marketing. Surely that fear is now attenuated.
What Apple is pursuing with this expanded functionality of SKAdNetwork is the opposite of Pyrrhic Privacy, which is any privacy policy that is measured through its deleterious effect on advertising performance. Pyrrhic privacy is the belief that the only way to enact privacy is to wholly undermine the viability of performance advertising.
10/ Personalized advertising is a public good, but only if consumer privacy isn’t forsaken and user choice accommodates the privacy/utility tradeoff. This has to be accepted as a starting point. https://t.co/UqcqHnWtXE
— Eric Seufert (@eric_seufert) June 7, 2022
But what Apple accomplishes through improving its privacy-centric measurement tools to the extent that they serve as a functional replacement for device identifiers is Privacy with a Purpose. This is encompassed in the belief that capable and serviceable privacy-enhancing technologies (PETs) can not only protect consumer privacy but preserve advertising efficacy all the same. This outcome is better for all parties: for consumers, who reap the benefits of personalized advertising without sacrificing their personal privacy; for advertisers, who can reach appropriate audiences efficiently; and for publishers, who can enjoy the attractive economics of high-relevance ad targeting with their ad inventory.