Johanna previously owned all Branch content including whitepapers, blog posts, and social media, and coordinated North America webinars. She also moonlighted in the product marketing realm, having owned the product update email, written product blog posts, and helped out with landing pages.
Feb 10, 2021
Ever since Apple announced their new App Tracking Transparency framework and subsequent launch of SKAdNetwork 2.0, marketers have been trying to make sense of what it means for their businesses. After spending years fine-tuning their targeting, measurement, and optimization engines, would you have to start over from scratch? What sort of data would actually be available via SKAdNetwork?
One of the few data points that SKAdNetwork reports on is a Conversion Value. The logistics of how Conversion Values work, which we will recap below, mean these values are limited in and of themselves. Because of this, everyone has been trying to figure out the best way to use them to drive as much business insight and success as possible.
There are a lot of theories on the best ways to “hack” these values, though the vast majority of these are heavily technical solutions that require close, continual dev work to implement. They also require a total overhaul of how you currently track events in your app, making it tough for marketers to actually implement them.
With this in mind, we wanted to walk through some more marketer-friendly strategies to get the most out of SKAdNetwork Conversion Values. It’s important to remember that this is new to the entire ecosystem, so be sure to constantly reflect on your process and re-iterate if something is not working how you want it to.
Before we get into potential strategies for Conversion Values, let’s quickly refresh on SKAdNetwork and the mechanics of Conversion Values. For any in-app action you want to track (up to 63 different actions, as Apple is reserving value 0 for Installs), you will assign it a Conversion Value of 1-63 (this can easily be handled by the Branch Dashboard and SDK, as referenced here). When a user clicks on your ad and installs your app, a 24-hour postback timer starts. Each time a user then completes an in-app action of a higher Conversion Value than the last, the timer resets to 24 hours. When the timer reaches 0, a postback containing the install and the highest conversion value completed is sent to the converting ad network.
These mechanics present a few issues that marketers are now dealing with. First, the 24-hour timer means that a user must complete their in-app actions within a short time window for marketers to have any insight into their down-funnel engagement. Second, since only one conversion value will be available per user, the ordering of these values is crucial. On top of all of this, these conversion values may not be available in some cases, as Apple will only send them once an unknown “privacy threshold” of conversions has been reached.
When figuring out how your company should approach these dilemmas, realize that there is no “right” answer. Much like how every marketer has operated up to this point, how you implement Conversion Values will depend on what matters most to your business. We will go through a few different Conversion Value frameworks that align with various business goals, but how you implement these values for your company may lie somewhere in-between the options we propose.
Depending on your business goals, how you should configure your conversion values should differ. If you want to skip ahead, click on your desired business goal:
As more data has become available on companies’ customer interactions, measuring lifetime value of a customer has become more common. This is especially true for ecommerce companies. One of the major deficiencies of SKAdNetwork is that there is no easy way to fully attribute lifetime value, both due to the 24 hour timer as well as the fact that only one Conversion Value is reported for each user, ever.
If your company cannot function without attributing lifetime value to your campaigns, we suggest you work with your analytics team to work through how to best model this. Feel free to reach out to your Branch representative to include them in those conversations.
Is your company in a period of their growth in which installs are the most important thing, and all app-related activity is simply geared towards getting as many installs as possible? Does your business know that more installs nearly always has a direct correlation with more business value (for example, an in-app ad supported business model)?
If you fall into any of these buckets, then you may want to decide if it’s worth tracking conversion values at all. As installs are your holy grail, getting the install postbacks sent to the ad networks you’re utilizing as quickly as possible will mean they will be able to optimize between campaigns as quickly as possible. By tracking a lot of Conversion Values, you could be continually resetting the postback timer, delaying this optimization ability.
What about if you have an app in which the only action(s) you care about must happen right after install, such as a login or purchase of a subscription that gates your app? In this case, you could just track one or two Conversion Values. In this example, where a login/subscription gates all content, we would suggest assigning each action a conversion value to know if an ad network is driving installs for people with an account already, or driving net-new subscribers.
In order to do this, you could set Conversion Value “1” for the Login action and Conversion Value “2” for the Subscribe action. Existing users would log in, triggering the value “1,” and then never reset the timer after that (since they have already subscribed in the past). New users would subscribe, triggering the value “2,” which would reset the timer. Since this is the higher of the two conversion values, when these users then log in after subscribing (thus triggering a lower Conversion Value), the timer would not reset again. In both scenarios, the install postback would be delayed by at most 24 hours, giving your ad networks some ability to quickly optimize campaigns.
Over recent years, the idea of a marketing or purchase funnel has been pushed aside for the flywheel. Customers rarely follow a linear path to conversion, but rather have a more nuanced, ongoing relationship with your brand that sees them engage and convert many times in many different ways. This very idea is what makes Conversion Values so limited for some brands. The fact that conversion values are only updated if they are of a higher value than the conversion value the user took last necessitates us to think of things through the lens of a funnel, rather than a flywheel.
If your company’s KPIs are defined by the user taking a specific action, like making a purchase or converting to a paid membership, and you must know if your ad campaign is driving this action, consider doing whatever you can to delay the install postback timer from reaching zero before the user completes this action.
Doing this is a bit more of an art than a science, but the general idea is to try to think of a customer’s path to that final action and assign each step along the way an increasing value, trying to max out the 64 available values if you can.
You would start by assigning conversion value 63 to the final action (let’s say, a purchase). From there you can work backwards:
predict the exact path everyone will take, but to create a framework that will hopefully delay the postback as long as possible until the user completes the “final” action that you care about.
There are a few things to keep in mind if you go this route. First, there are several actions that could be used early in the process or late in the process, depending on your app. One key example of this is a login. Does a user have to login to view your content? If so, then login action would get a low conversion value. If they don’t have to, your initial thinking may be to make it a higher conversion value. However, remember that the postback timer only resets if a higher conversion value is triggered. So if you put login as conversion value 58, and a user decides to login right when they install the app, they will have to move through the rest of the conversion process very quickly compared to someone who only logs in when they’re about to purchase something.
It is also important to consider your entire app engagement strategy for new users. Since you will want to keep Apple’s 24-hour timer from hitting zero, consider more robust push notification and email-to-app strategies for new app users aimed at getting them back in the app as much as possible from the moment they install.
Finally, due to Apple’s privacy threshold mentioned above, you will want to be careful about assigning conversion values to actions that are too infrequently completed as this may mean a decrease in the total number of conversion values received.
Again, more of an art than a science.
Ah yes, the happy medium. Many of you will want some insight into down-funnel metrics, but not if it means that your ad networks don’t get the install postbacks for days, weeks, or even months. If this is the case, then you can just focus on a few major in-app events:
While you won’t get insight into slower paths to purchase, this will at least give you an idea if certain ad networks are driving installs that lead to quick conversions. It would also be worth spreading out the values used in order to make tweaks in the future easier.
This was one of the first questions everyone had when they first read about SKAdNetwork Conversion Values. Nowhere in the Install/Conversion postback is there a place to attach revenue data to a conversion. This means that tracking revenue requires us to “hack” the conversion values to represent revenue.
One way you can do this is to assign conversion values to revenue buckets:
It is important to note that this could create more questions than it answers. Does a user’s first-time purchase revenue correlate with their second purchase revenue, and their third? Does the type of campaign you’re running with one network lend itself to higher initial purchase revenue but a campaign with another network is more geared towards users with higher likelihood of continually purchasing? Are you totally discounting a network that doesn’t drive purchases before the postback timer runs out? Remember, only one postback per user will ever be sent, with only one conversion value attached to it, so making decisions based on the one revenue bucket could be very misleading. Because of this, it is important to work closely with your analytics team to model out how best to make decisions using this data. Your Branch representative can work with you in these conversations.
As you can see, there is a lot to consider when tracking events and assigning SKAdNetwork Conversion Values to them. However, the main factor to consider is what matters most to your business. The answer will no doubt change as your business grows and evolves, so how you are tracking Conversion Values should always be a topic for discussion between any relevant teams, from product to marketing to analytics. As you look to update your Conversion Value strategy, keep in mind that there would be a “cool-down period” when switching over, due to some users still being in the middle of the looping timer. With this in mind, any changes you make would be best suited between large campaigns rather than in the middle of them.
As your team looks to implement your strategy, remember that SKAdNetwork is new to everyone. Investing in building out the most elaborate Conversion Value system right now before anything has been tested or learned may not be the best use of your team’s time. Instead, create a framework that enables you to start slow, but continually iterate as you learn more about how your users are interacting with your SKAdNetwork campaigns. This means setting up your framework in a way that allows you to evolve your strategy without requiring to make code-level changes and App Store updates every time.