Thanks!

New data shows 32% of non-organic installs are misattributed with SKAdNetwork

By Roy Yanai
skadnetwork data insights - Square

Apple’s SKAdNetwork considerably impacts the accuracy of attribution data in regards to non-organic activity across installs, revenue, and in-app events.

That is the clear-cut conclusion of an in-depth analysis we’ve performed on campaigns of apps that have implemented the new attribution mechanism.

In fact, we’ve discovered that SKAdNetwork only captures about 68% of installs driven by non-organic activity. That’s 32% of misattributed installs.

Before we dive into the details of our study, let’s take a step back and look at where things stand.

Despite its benefits, SKAdNetwork limitations can’t be ignored

Since Apple’s announcement in late June, developers have been speculating about how iOS 14 – and namely, SKAdNetwork – will impact their abilities to conduct accurate measurement and optimization.

As things stand, SKAdNetwork will likely be the main source of deterministic attribution available to advertisers for iOS. As an attribution solution, SKAdNetwork holds many benefits; perhaps, most importantly, the inherent privacy-first approach of the product. 

The limitations of SKAdNetwork, however, are not to be ignored. They have drawn a lot of concern among developers, leaving a lot of unanswered questions; one of the biggest being how developers were going to manage the overhead of supporting this API.

On average, SKAdNetwork only captures around 64% of revenue driven by non-organic installs.

The other question, perhaps more concerning, was how mobile measurement would be impacted by the limitations that are an inherent part of SKAdNetwork.To help advertisers prepare for the planned changes in iOS 14, AppsFlyer released the SKAdNetwork simulation dashboard back in early September.

This dashboard simulated the very real effects SKAdNetwork has on attribution data.

With this extensive infrastructure in place, we were able to answer the question, “how far-reaching are SKAdNetwork’s limitations, really?” How badly will data actually be affected, when run through the SKAdNetwork sieve?

Guide

Getting started with mobile attribution in the age of privacy: The complete guide

Download

Our hypothesis: Misattribution of non-organic as organic

To answer these questions, we ran an extensive analysis of SKAdNetwork data.

Our working hypothesis was that due to the nature of SKAdNetwork coverage, attribution would be impacted.

What SKAdNetwork covers:

  • Only app-to-app flows and direct click-to-install flows
  • Only events that occur up to 24 hours post-install (unless timer extensions are put in place, and they have their own trade offs)

What SKAdNetwork doesn’t cover:

  • No web-to-app
  • No re-engagement
  • No measurement of view-through and deferred click-through
  • No ROI measurement

For these reasons, we anticipated both a gap in the total numbers of measured installs, in-apps and revenue, as well as potential discrepancies in attribution sourcing. In other words, we anticipated that non-organic installs and in-app events – that advertisers pay media sources for – would be falsely attributed by SKAdNetwork as organic. 

What we weren’t entirely sure of ahead of the analysis, was the extent of the impact, as well as whether or how the impact would differ among different app categories.

Comparing actual data to SKAdNetwork data

Our analysis was conducted by analyzing non organic installs, revenue and in-app event data from all major App Store categories: Finance & FinTech, Games, Health & Lifestyle, Media & Entertainment, Music, News/Magazines/Catalogs, Photo & Video, Social, Networking, Utilities, and eCommerce/Retail.

A sample size of roughly 30 apps from each category was included in the analysis; all apps measured have a minimum of 500 daily installs. The data included was measured over a 30-day period and is LTV-based.

We investigated the data from two angles:

  1. What it looks like now
  2. What it will look like with SKAdNetwork – the same data, run through an SKAdNetwork “filter”, based on the limitations mentioned above

We compared the two data sets to see how much of the non-organic data is actually captured by SKAdNetwork.

What we uncovered

Unsurprisingly, SKAdNetwork considerably impacts the accuracy of attribution data in regards to non-organic activity data. In short, roughly 34% of all non-organic activity slips through the sieve and is misattributed as organic.

Some categories are more severely affected than others (Photo & Video and Media & Entertainment are the hardest hit across the board), but all categories are impacted by this.

Here are the key findings regarding SKAdNetwork’s effect on the data:  

  • On average, 32% of non-organic installs were wrongly categorized as organic installs by SKAdNetwork.
  • The app categories hardest hit by misattribution (non-organic traffic falsely attributed as organic) were the Photo & Video category, (44.6% of NOIs misattributed) and Media & Entertainment (40.5% NOIs misattributed).
  • The category least impacted by NOI misattribution was Gaming, where “only” 21.8% of NOIs were misattributed as organic.
  • On average, SKAdNetwork captures around 64% of revenue* driven by non-organic installs.
  • The app categories that lost the most non-organic revenue data were Finance & Fintech (only 52.7% revenue captured), Photo & Video (50.1% revenue captured) and Shopping (51.2% of revenue captured).

Needless to say, this isn’t a gap that can be ignored. Advertisers need to know that marketing dollars spent on ads are not disappearing into a data void.

Why SKAdNetwork isn’t the whole answer

While SKAdNetwork does provide a very critical part of the solution for ad attribution on iOS apps, it does not provide 100% coverage. With such gaps between what the data advertisers need and what they will be getting in reality, SKAdNetwork still has a lot of catching up to do.

SKAdNetwork isn’t the solution, but it is certainly one part of it. It is a deterministic attribution method, after all, and there is no need to throw out the baby with the bath water.

The key here is the approach; SKAdNetwork needs to be addressed as part of a whole. Advertisers need more than SKAdNetwork to be able to truly measure the performance of their marketing efforts, and that’s where solutions like probabilistic modeling and web-campaign-to-app come into play.

Each has different purposes and ticks a different box, but all together they provide a complete picture of performance and can help set advertisers up for success.

*This revenue drop refers to attribution only, and is not due to the limited capability of measuring LTV with SKAdNetwork.

Roy Yanai

Roy Yanai is the AVP of Product - Measurement at AppsFlyer. Over the past 6 years, Roy led different product areas within AppsFlyer including Data Exchange, Analytics, Incrementality and iOS solution. Currently, Roy leads the product efforts for AppsFlyer’s attribution and measurement products. Prior to AppsFlyer, Roy served as CEO & Head of Product at Mego - a startup aimed to solve eCommerce delivery pains and founded HackIDC - Israel’s largest Hackathon.
Background
array(4) {
  ["title"]=>
  string(35) "Ready to start making good choices?"
  ["buttons"]=>
  array(2) {
    ["button1"]=>
    array(7) {
      ["enabled"]=>
      bool(true)
      ["text"]=>
      string(13) "Contact sales"
      ["url"]=>
      string(37) "https://www.appsflyer.com/start/demo/"
      ["style"]=>
      string(34) "btn btn-primary btn-primary--white"
      ["size"]=>
      string(6) "btn-lg"
      ["target"]=>
      string(5) "_self"
      ["id"]=>
      string(0) ""
    }
    ["button2"]=>
    array(7) {
      ["enabled"]=>
      bool(true)
      ["text"]=>
      string(12) "Sign up free"
      ["url"]=>
      string(32) "https://www.appsflyer.com/start/"
      ["style"]=>
      string(39) "btn btn-text btn-arrow btn-arrow--white"
      ["size"]=>
      string(3) "btn"
      ["target"]=>
      string(5) "_self"
      ["id"]=>
      string(0) ""
    }
  }
  ["image"]=>
  bool(false)
  ["section_settings"]=>
  array(1) {
    ["hide"]=>
    bool(false)
  }
}
Ready to start making good choices?