Feb 5th 2021
Why Only Using SKAdNetwork for Campaign Optimization Is Insufficient
The following is an excerpt from an article by Paul Bowen on the AlgoLift by Vungle blog, “Why Only Using SKAdNetwork for Campaign Optimization Is Insufficient”. The full article can be found on the AlgoLift by Vungle blog.
As clarity starts to form around how MMPs and ad networks plan to work with SKAdNetwork, we’d like to spend some time discussing in more detail how we can use Apple’s SKAdNetwork for performance marketing and why it’s critical to consider more than just this set of data for campaign optimization.
What does it mean to only use SKAdNetwork?
The key piece of data within SKAdNetwork to help with campaign optimization is “ConversionValue” (conversion value). This piece of data gives some indication of post-install performance and is sent to the ad network by the app and reported at the campaign level. This conversion value can be defined using early revenue, engagement, and retention events, or—most optimally—predicted LTV (pLTV).
An advertiser can decide to optimize their campaigns solely by using the conversion value, making bid and budget decisions based on the number of conversion values in any single campaign or channel, effectively normalizing the performance across channels and campaigns. In practice, this would mean that one conversion value from Facebook would be valued the same as one on, say, Unity Ads.
For the remainder of this article, we’ll assume that the final conversion value is sent to the ad network within the first 24 hours after install, as per Facebook’s definition. Therefore, using only SKAdNetwork data to optimize your mobile marketing campaigns means you:
- Only optimize campaigns toward D0 ROAS or other D0 KPIs
- Can’t update campaign ROAS based on updated cohort data
When using SKAdNetwork to optimize campaigns, it’s possible to use only the conversion value to determine the allocation of bids and budgets. In this case, if you wanted to consider the long-term performance of your advertising campaigns, you wouldn’t model the predicted revenue that campaign drove, but only model the long-term ROAS of users/cohorts as a function of conversion value by building a model that maps conversion value to LTV (i.e. if we know that).
The above chart shows how an advertiser would attempt to map conversion value to LTV, first by mapping conversion value to D0 revenue, and then by extrapolating D0 revenue to D365 LTV (if this is your target).
There are two significant inefficiencies when extrapolating conversion value to LTV:
- Approximating D0 revenue from ConversionValue is challenging, especially if the user can’t generate revenue within the first 24 hours (e.g. an app that monetizes through subscriptions with a free trial). The best approximation for D0 revenue is a range or cumulative view—e.g. $0-$5 or $10+.
- Using your D0 revenue approximation to project D365 revenue is also challenging as it doesn’t adequately reflect proper variations in revenue. It assumes all campaigns and channels have exactly the same behavior. This will penalize high ROAS campaigns/channels and benefit low ROAS campaigns/channels to the detriment of the portfolio returns.
The conversion value, whether based on early revenue, engagement, or predicted LTV (pLTV) acts as an early signal for ad networks to optimize against. Ideally, we’d like to update the predicted ROAS (pROAS) for campaigns or channels based on updated user behavior, which would give us a more informed view of the historical performance of campaigns. For example, if we see that user LTV has changed after the first 24 hours, it’s prudent to update our understanding of the campaign pROAS, even though that may be several days in the past.
When using only conversion value, however, to optimize SKAdNetwork campaigns, there’s no consideration for the underlying users that make up these campaigns. This means that once the conversion value is received from the ad network (via an MMP) and the D0 KPI is calculated, there’s no way to then update this prediction based on updated knowledge of each campaign’s underlying user behavior.
The core challenge with only using SKAdNetwork data to optimize campaigns is that we don’t know what the underlying user behavior of a campaign looks like. If we don’t have this data, we can’t determine if users or campaigns with the same conversion value actually behave the same. We should then try to understand what the underlying behavior of users is in the campaign to solve this problem. When working on this problem, we’re not trying to create a one-to-one mapping of install-to-campaign, that would be impossible based on how SKAdNetwork works and against the spirit of Apple’s privacy initiatives. It’s useful, however, to use statistical methods to create probabilities for which campaign each install might have come from.
Read the full article here.
If you’d like to learn more about AlgoLift by Vungle’s measurement solutions that solve for Apple’s privacy changes, please email email@example.com.