Attribution

SKAdNetwork updates: instant model migration, SKAN 3 compatibility mode, more granular revenue reporting, Google conversion API

By John Koetsier September 1, 2023

There’s a lot that’s new in SKAdNetwork support from Singular, and I’m not even talking about SKAN 4 or SKAN 5. The Singular product team has been hard at work on SKAdNetwork updates and has delivered massive upgrades and improvements, including:

  • Instant model migration
  • SKAN 3 compatibility mode, which lets you safely transition to SKAN 4
  • More granular revenue reporting in SKAN 3 (and even bigger updates in SKAN 4)
  • Google compatibility

I spent some time with Singular product manager Omri Barak, chatting about the new SKAdNetwork updates.

Click play on the video above, subscribe to the podcast, and keep reading!

SKAdNetwork: instant conversion model migration

Changing conversion models in SKAdNetwork has been painful and slow. Whether you want a new model because your app changed, or because you think there are different events or revenue thresholds that will give you better signal for optimization, you’re in for a wait.

A long wait.

First, existing ads and campaigns tied to the old conversion model need to flush from your partners’ inventory. Second, any time you change conversion signals, ad partners need to retrain their systems to target and optimize for your new data points. That’s true in SKAN 3, and it’s even more true in SKAN 4 due to much longer conversion windows.

  • SKAN 3 postback: 24 to 48 hours after updating final conversion value
  • SKAN 4 has multiple postbacks, though
    • First postback period is 0-2 days after install
      • Postback comes 24 to 48 hours after updating final conversion values
    • Second postback period is 3 to 7 days after install
      • Postback comes 1 to 6 days after updating final conversion values
    • Third postback period is 8 to 35 days after install
      • Postback comes 1 to 6 days after updating final conversion values

Add it all up, and SKAN 4 postbacks might not be flushed through until 41 days after the original install. And that’s bad for growth.

“A campaign is better than no campaign,” Barak says. “It really hinders adoption of SKAN.”

The solution: extreme data science for seamless and instant model migration, which allows changing SKAN 3 models at will — as well as upgrading to SKAN 4 — without the big wait, missing data, and lost growth opportunity.

“We’ve built models internally to figure out for each conversion value or each postback we receive, what is the probability?” Barak says. “We’re able to determine what’s the chance that the first model encoded this, or the second model.”

This works especially well with minor tweaks to SKAN conversion models. It also works when marketers totally change the events they’re measuring, because it’s easier to determine that the old events aren’t relevant anymore. Minor tweaks in revenue models are also supported, and Barak says they will improve predicted D1 and D7 revenue while not seriously impacting network optimization.

From a reporting perspective, this is completely transparent: no differences, no pausing.

In addition, Singular will be communicating with ad partners to let them know: you don’t need to pause campaigns anymore when you get new optimization criteria from updated conversion models.

SKAN 3 compatibility mode

Being able to instantly update your SKAdNetwork conversion model to something potentially better is great. Being able to update to SKAN 4 without the pause while still remaining SKAN 3 compatible is even better, and that’s one of the SKAdNetwork updates Singular has recently delivered.

Note that what determines whether an ad network provides a SKAN 4 postback depends on 3 things:

  1. The ad network click version
  2. The way the conversion value is updated
  3. The version of iOS running on the device an app in installed on
SKAN 4 SKAN 3 ready device

What SKAN 3 compatibility mode essentially does is simple: it stops encoding values after 24 hours to make the first SKAdNetwork postback functionally equivalent between both SKAN 3 and SKAN 4. So in a SKAN 3 world, you don’t miss anything. In a SKAN 4 world, you gain a little extra with postbacks 2 and 3, which would not have been possible if you were still in default SKAN 3 mode.

“Basically what we do is we stop encoding new values after the first 24 hours,” Barak says. 

“In case of SKAN 4 you’re missing out on some of the measurement or anything that happens between 24 and 48 hours, but actually this allows SKAN 3 and SKAN 4 to achieve the same information and conversion values, and still won’t interfere with current network optimization that is built over SKAN 3.”

More granular revenue reporting

SKAdNetwork revenue conversion models tend to be less granular than you might like, simply based on how many revenue buckets you can set up. Now Singular is using your own first-party data to double-check the SKAN math and get more accurate revenue.

The problem is trying to estimate actual value from the ranges in SKAN conversion values.

Revenue buckets might span a $1 range or much more. Estimating SKAN reported revenue would generally average that bucket, so a postback with a conversion value range of $1 to $2 would estimate $1.50 reported revenue.

The problem is that this might not align with your actual purchases very well, leading to under-reported revenue. That in turn will lead to inaccurate ROAS calculations, wrong LTV and ROI assumptions, and worse ad campaign optimization.

SKAN ROAS calculation

The solution is to check your actual revenue.

“In order to tackle that, what we do in Singular is we actually count the actual revenue for each user that reached a certain conversion value,” says Barak. “That way, we can kind of group by or cohort users based on the conversion value they reached. So if all your users that reached conversion value 2 actually spent $2.99, we’ll be able to correctly report and map those users to that conversion value. And it leads to much [more] accurate reporting.”

The first step was 87% accurate D7 predictive revenue under SKAdNetwork, which Singular released way back in May 2022. Now Singular has accurate D1, and is working on bridging up the gap between D2 and D3.

SKAN 4 will just improve this modeling with the second and third postbacks.

Google conversion API

Google has taken its time to support SKAdNetwork, of course, but now the search and ads giant is there. What’s available now is automatic updating of your SKAN conversion models in Google Ads as soon as you update it in Singular.

“They released an API where Singular is able to update the model,” Barak says. “This means that Google can now optimize, not only toward specific, like higher conversion values better, but actually towards specific events or ROAS campaigns. And the good news for Singular users is that it’s out of the box, like you don’t need to do anything.”

Set up your model, and you’re good to go.

You can even set up your SKAN 4 model — which Google does not support just yet — and thanks to compatibility mode, Singular will send it over to Google just as if it’s a SKAN 3 model.

More SKAdNetwork updates to come soon

There’s more SKAdNetwork updates coming:

  • More accurate cohorts
  • Longer cohorts
  • Better postback 2 and postback 3 reporting in SKAN 4
  • New conversion models

The goal is simple: be the best iOS and SKAdNetwork attribution provider.

“We basically want to always be the leading company in SKAN,” says Barak. “That’s our goal and that’s what we’re working on.”

If you haven’t already, subscribe to Growth Masterminds and Singular’s YouTube channel. You’ll always be up to date on not just what Singular is doing, but also what the world’s top mobile marketing experts are learning and sharing.

Full transcript: Singular SKAdNetwork updates

John Koetsier: What is new with SKAdNetwork? 

Hello and welcome to Growth Masterminds. My name is John Koetsier. 

Feels like there’s a ton going on with SKAN right now: the transition to 4, some bugs perhaps, and maybe a little bit of rewind, but there’s also a lot of innovation happening. 

To chat about that, we have Singular Product Manager, Omri Barak. Welcome, Omri.

Omri Barak: John, thanks for having me. 

John Koetsier: Super pumped to have you. Super pumped to dive into all this stuff. Major overview first, let’s start there. What’s the state of SKAN right now?

Omri Barak: So, SKAN 4 has been released for over a year now and we still see kind of adoption going on slowly. It’s totally dependent on networks, to be honest. Networks are the ones that control which version of SKAN our users or anybody doing UA can do.

And we have just seen like a step backwards when Meta released SKAN 4 and then we saw a decline in conversion values, and here in Singular, the team figured out that there’s an Apple bug. And now we know that Meta took a step back and rolled back their change, and now even Meta is mainly SKAN 3. So we’re seeing adoption but it’s slower than what we thought.

John Koetsier: Yeah, I was super excited, I want to say 15, 20, 30 days ago, SKAN adoption seemed like it was on the curve. Meta started, it was great. We saw adoption overall industry-wide in the 30 to 40% range, maybe even tagging up towards the 50 on some days. And then, of course, the bug came out. Conversion values were disappearing, and Meta said, “Ah, back to SKAN 3.” Now I’m afraid that we might have months still on SKAN 3, because when will all the changes roll out to all the iOS devices, right? I happen to be on iOS, I think it’s 17 right now, or it’s the latest, right?

It’s a total beta version but most people update when they have to, or when the phone finally does it for them, right? So, yeah, that’s a little bit of my concern right now.

Omri Barak: Yeah, so there’s a long time until every device is actually SKAN 4 ready. We know that Apple fixed it in the latest 16.6, if I remember correctly. It’ll still take a long time until all devices are eligible for SKAN 4 without this hindering bug.

John Koetsier: However, we will get there. It will happen. The wheels of progress do continue turning, so we’ll get there. 

Now, one of the challenges, of course, is, even if you’re just using SKAN 3, sometimes you change your model. Sometimes you just think there’s a better way to capture conversions; there’s events that are more indicative of long-term value, whatever it might be, and you need to change your conversion model. 

Also, when you’re upgrading to 4, then you’re changing. What are some of the challenges associated with that? Why is that hard to do? Or even, you almost don’t want to do that.

Omri Barak: So, basically, when you change models in SKAN, what most partners start off by doing is wait for all SKAN postbacks to flush. Because of the random timers and lock windows and different measurement periods, depending on your model, mostly because of a mechanism built into SKAN or up til SKAN 3, where each time you updated your conversion value you would get another 24-hour grace period to update the conversion once again. And only after the full time has passed, only then would Apple enter a second kind of a timer of 24 hours, and only then would any partner showing an ad will get the first postback. 

So, that was a serious challenge. And what partners and even Singular did in the past is in order to be able to decode what each postback meant or what each conversion value meant that you would need to stop all your conversion value updating. Which is a challenge if you’re not working with an MMP. But even with an MMP, that means that you’re going to stop a new encoding for 24 or 48 hours, depending on your model. 

And then what we saw in Singular is it really hinders adoption of SKAN. Because if people set a model and they don’t want to stop their campaigns, because it might not be the best model and might not be working well for optimization, but a campaign is better than no campaign for two days. And we saw people getting stuck or working with a suboptimal model just because somebody sometime in the past started this model. We also know that some networks pause each time a model on the MMP side changes.

So, Meta, for instance, used to pause a campaign if somebody changed the model in Singular. And it’s a use case for all MMPs, not a Singular specific problem. And when we’re introducing SKAN 4, we know that everybody’s going to change a model. Like there’s new postbacks to be configured, measurement period changes from one to two by default.

And at Singular we understood that we don’t want to face this challenge with all our clients all at once. And what we introduced is a seamless model migration in Singular. 

Now, in Singular, you can change SKAN 4 models without the pause. So how we’re tackling it is there is a lot of data science into this. Like, we need to figure out what does each conversion value mean if we didn’t pause the model? We don’t want to pause the model for additional reasons, right? There’s an increased 48 hours, so now a pause would be much longer. And there’s a second and third postback that can take up to 35 days. 

John Koetsier: A month.

Omri Barak: And so our approach at Singular, we stopped waiting for events to flush. But we’ve built models internally to figure out for each conversion value or each postback we receive, what is the probability? And I know it’s a word you can’t say anymore, but it’s still valid statistically. But we’re able to determine what’s the chance that the first model encoded this, or the second model.

And from a reporting perspective, you don’t see anything in Singular reporting. Like it’s completely flatline. You don’t see a difference or you don’t see a pause, and that’s amazing. And we also collaborated with partners to say, okay, maybe you can stop pausing your campaigns. And we do expect that to be announced soon.

John Koetsier: So let’s just replay that real quick in SKAN 3. If you want to change your model, because guess what? You might find a more optimized one. You might find an event that is more predictive, whatever. You’ve got probably two, three days of bad data or poor data minimum, right? Because there’s time for it to flush. 

There’s acceleration on the new model. It might be even more than that, because guess what? If the platforms and networks are using SKAN for optimization purposes, then how do they optimize based on that? So you might actually burn more cash and just spend that just goes out the door because the AI is training the networks on what to optimize on. 

In SKAN 4, that’s even a bigger issue, like you said, because the default conversion periods are huge. Much bigger, especially the second and third postbacks, right? The third one, 35 days — ouch — plus or minus an indeterminate period of time. So you could be spinning your wheels. 

Now you’re basically saying, “Hey, change it on the fly. Go for it. We’ll figure out all the details. We’ll work out all the details.” That sounds great. It sounds wonderful. How good is it? How close is it to reality?

Omri Barak: So, it works amazing with minor tweaks. Which we already know, like if you have revenue buckets and change it around a bit, or if you introduce events that are unique. If you totally changed events that weren’t on the first model and now are available in the second model, it also works pretty well, because it’s easier to determine that the old events are no longer relevant in any way.

So we do support these two kinds of very separate use cases. And we know they work well. So if you want to get new events, it’s easy, because it’s pretty simple to figure out that they are no way related to the first event. And minor tweaks in revenue, which mean a lot in Singular from Singular perspective, because minor tweaks in revenue mean better one-day revenue and even seven-day predicted revenue because of how our algorithms work, and we expect them not to affect network optimization by much.

John Koetsier: Super interesting and super cool. Look forward to that. Ultimately, the goal is with this and also with Privacy Sandbox which is even more complicated, let’s put it that way, and coming pretty soon, the goal for this is, hey, run your campaigns. Be a marketer. Figure out your growth. We’ll take care of the details. And so that’s a step towards that happy future and hopefully that works out perfectly well. Is that available right now? Is that shipped?

Omri Barak: Yeah, it is. It is live for all our clients. Anybody who has a SKAN 3 campaign can update it to SKAN 4 with no pause. And if you already have a SKAN 4 campaign but you’re not totally happy with it or want to tweak it, now’s the time you can do it with no penalty charges.

John Koetsier: And just so everybody is clear, you can update to your SKAN 4 model. It doesn’t change anything. You don’t miss any data if your partner’s just doing SKAN 3. You actually get more data when they start using SKAN 4, correct?

Omri Barak: True. So, in Singular we enter to have our clients’ back here while most networks are still on SKAN 3, we allow a SKAN 3 compatibility mode in Singular and that allows clients that want to just test out SKAN 4, just want to have coarse conversion values, want to get P2 and P3 to figure it out, or are working with a majority of SKAN3 networks and don’t want to hurt optimization and reporting on their side, we allow a compatibility mode. 

What we do in Singular to support it, and I won’t get into the math here because I always lose everybody when I do, basically what we do is we stop encoding new values after the first 24 hours. So, right, in case of SKAN 4 you’re missing out on some of the measurement or anything that happens between 24 and 48 hours, but actually this allows SKAN 3 and SKAN 4 to achieve the same information and conversion values, and still won’t interfere with current network optimization that is built over SKAN 3.

John Koetsier: And still allows for postback 2 and postback 3 later on. 

Omri Barak: Yeah. 

John Koetsier: Perfect. Perfect. And gives you parity between those two measurement models. So you can see, hey, what am I seeing? What am I getting? Because with SKAN 4, even if you stop the first postback period, lock it after 24 hours, there’s additional data that you can get, source identifier data, if you match, if you have enough volume to overcome the privacy thresholds or crowd anonymity, which is a SKAN 4 term for that. 

Very cool. What else is new in SKAN for Singular? You’ve got model revenue, you got SKAN cohorts, you’ve got some Google conversion API stuff. What else is new?

Omri Barak: So one of the very cool things that we recently did in Singular is we improved our P1, our first postback kind of reporting works for SKAN 3 and SKAN 4 as well to have better indication of what is the actual revenue generated by each postback.

Let’s think of a kind of a simple example. Let’s say you have a revenue bucket configured in your model and it’s between $2 and $3. So, a naive approach would be to say, Okay, so each time I get this postback value, I’ll treat it as like two and a half dollars and it’s the middle of the bucket. But my app only has a gem package of $2.99. So every time I actually get this postback it’s not equal, like two and a half. It’s $2.99. And then I’m actually under reporting. Singular, or anybody who wants to decode this, naively, would under report your revenue. 

In order to tackle that, what we do in Singular is we actually count the actual revenue for each user that reached a certain conversion value. That way, we can kind of group by or cohort users based on the conversion value they reached. So if all your users that reached conversion value 2 actually spent $2.99, we’ll be able to correctly report and map those users to that conversion value. And it leads to much [more] accurate reporting and that might be like on the nose example, but we can see it across the board.

So, a lot of times if revenue buckets are too big or are not well suited for my specific app, we would revenue reporting fluctuating. And now all our clients have much more accurate reporting for Day 1, and it fits well into our kind of overall scheme of bringing back cohorts to the SKAN world. So, one of the biggest challenges of SKAN reporting is that Apple took cohort revenue away from us. 

And now Singular has already released, the first step was releasing Day 7, and that’s a major, major jump. Now we have accurate Day 1, and now we’re working on bridging up the gap between Day 2, Day 3.

There’s a lot more data science and we want to pull in P2 and P3 to get better reporting. So now when SKAN 4 kind of lifts off we’ll have much more signals for longer cohorts, so we can do Day 7 now. Using postback 2 would be amazing. We’ll get much more accurate data and Day 35 will also be built over P2 and P3. Which is amazing, because we’re basically bringing back cohorts.

John Koetsier: Very cool. Is it also the case that when you’re reporting something that you’ve used some data science to figure out, you’re reporting it as, we think it’s here, but here’s the range it could fall within and here’s the probability?

Omri Barak: Yeah. So we do have range because it’s statistical modeling. The more accurate or the better model you choose that is a good indicator for revenue, the better. If you choose events that have no correlation to revenue, it’s a challenge to do what we’re trying to do. Obviously revenue is the best, has the best correlation for revenue.

But if you don’t get revenue on the first, second day, we know it’s a challenge, especially around non-gaming or non-casual gaming. If you use well enough defined events, like a subscription started, even if the subscription doesn’t end or you don’t see revenue on the first seven days — or first two, obviously, and even not for seven — it might be a good enough indicator to how much revenue is generated by these users.

Any engagement can be a good indicator. And that’s one of the cool things in our new kind of approach in order to see revenue, or Day 1 revenue or Day 7 revenue in Singular, you don’t need to have revenue encoded into your SKAN model. So if you choose different events that might have a longer effect, or you want to optimize networks to optimize towards those events, you’ll still see the revenue generated by those users in Singular. So it’s the best of both worlds.

John Koetsier: Wonderful. And what’s the deal with the Google conversion API?

Omri Barak: So, that’s amazing news. Google has been late to the SKAN game, very late. It’s the first time they’re optimizing over models that are supplied by a third party or MMP in this scenario.

And they released an API where Singular is able to update the model configured in Singular. This means that Google can now optimize, not only toward specific, like higher conversion values better, but actually towards specific events or ROAS campaigns. And the good news for Singular users is that it’s out of the box, like you don’t need to do anything.

You set up a model in Singular. Singular ships it over to Google, and that’s it. Now you can start your campaign and then run it. The bad news is… that they only support SKAN 3 for now. 

John Koetsier: Which is not really a problem at least for a couple months.

Omri Barak: Not really a problem. And even if you have a SKAN 4 model in Singular, we’ll send it over to Google as if it was a SKAN 3. Don’t worry about it. In Singular, you don’t need to worry if you have a SKAN 3 or SKAN 4 model, we are fully compatible and in every which way. And things work, out of the box.

John Koetsier: It just works. I kind of remember that from another company, maybe a fruit company, I’m not sure. Anything else? Tease us a little bit. What can we expect over the next quarter? Any other goodies?

Omri Barak: We’re working on much more accurate cohorts and longer cohorts. We’re working on better P2 and P3 reporting. We want to show what events and the paid users in each kind of postback time period. We might be working on new models, but that is only in the idea stage. 

But we basically want to always be the leading company in SKAN. That’s our goal and that’s what we’re working on this quarter, like we did last too.

John Koetsier: Wonderful. Well, Omri, thank you for taking this time. I know it’s late for where you are. Also, thank you and your team for uncovering what was actually happening with SKAN 4 and the conversion value reset bug.

If you want the details for that, Omri actually wrote a blog post on the Singular blog. Head on over to Singular, hit the blog and you’ll find his post. It’s one of the recent three or four, you’ll just find it there. Thank you so much for your time and have a wonderful evening.

Omri Barak: Thanks, John.

Stay up to date on the latest happenings in digital marketing

Simply send us your email and you’re in! We promise not to spam you.