How SKAdNetwork 4 works

With SKAdNetwork 4, Apple changes certain fundamental aspects of how SKAdNetwork (SKAN) reports ad attributions. These changes allow for greater reporting flexbility and granularity in your data.

In this article you can find out how SKAN 4 works. Then, learn how to set up and see SKAN 4 campaign reporting in Adjust.

Availability

  • iOS 16.1 and later

Multiple conversion windows and postbacks

Ad networks receive attribution information from SKAN via install-validation postbacks.

For devices running iOS 16.1 and ads signed using SKAN 4, you can receive up to three postbacks for the winning ad attribution. Each postback has its own conversion window. These multiple conversions offer greater insight into post-install behavior as they cover up to 35 days post-install.

Apps can update the conversion value throughout all three conversion windows, since by default SKAN waits until the end of a conversion window to get the final conversion value. When the conversion window ends, the postback is sent after a random delay.

  • Postback 1: 0 to 2 days conversion window
    • 24-48 hours delay
  • Postback 2: 3 to 7 day conversion window
    • 24-144 hours delay
  • Postback 3: 8 to 35 day conversion window
    • 24-144 hours delay

Lock conversions

You can finalize a conversion value before the conversion window ends by locking the conversion. You can lock a conversion in any or all conversion windows.

Once a conversion value is locked, the conversion value cannot be updated again within the same conversion window. Once a conversion is locked, SKAN sends the postback randomly during the applicable delay period.

By locking a conversion value, you can:

  • Draw insights from your conversion values faster.
  • Apply the lock at key moments in the user journey, to standardize how you measure lifetime value (LTV).

Data tiers

To maintain users’ privacy and ensure crowd anonymity, SKAN 4 expands the privacy threshold into four tiers of crowd anonymity: 0, 1, 2, and 3. The postback data tier is determined by the crowd size associated with the app or domain displaying the ad, the advertised app, and the hierarchical source identifier the ad network provides.

Apple assigns a tier to each install and uses this to determine data limitations in the postbacks that SKAN sends. The following SKAN postback fields are affected by the data tier:

Postback fieldField description
source-identifierThe hierarchical source identifier that may include two, three, or four digits.
conversion-valueA fine-grained conversion value available only in the first postback.
coarse-conversion-valueA coarse conversion value, which the system sends instead of the fine-grained conversion value in lower postback data tiers, and in the second and third postbacks.
source-app-idThe identifier of the app that displayed the ad.
source-domainThe identifier of the domain that displayed the web ad.

With this video, discover at a high level how Apple’s privacy concepts of crowd anonymity and data tiers work together to structure the conditions under which you receive more or less detailed information about your campaign.

Source identifier

The source identifier replaces the campaign identifier from SKAN 3. This four-digit value lets you identify which campaign the app install is attributed to, as well as additional information.

The source identifier is intended to be read as a combination of 2, 3, and 4 digit numbers. This gives you more flexibility in campaign structure and variable testing, as there are now potentially 10,000 different combinations available.

Since the first two digits will always be received, you can prioritize them and leverage the second two for more granular dimensions. So, two digits can represent the ad campaign ID, three digits represent the location, and four can represent the ad placement.

The use of data tiers and adapted postback data means you have:

  • Reduced null conversion postbacks.
  • Potential for more granular reporting data to optimize on.
  • Coarse values to measure specific events, revenue, or retention that are closely tied to the metrics that drive your app’s LTV.
  • The chance to leverage your fine conversion values to associate each value with distinct activities, given that fine values can now decrease in addition to increasing.

Conversion value levels

There are two levels of conversion values: coarse and fine.

Fine conversion values are conversion values which operate the same as in earlier versions of SKAN. They are a 6-bit value, which allows for up to 64 combinations (0 to 63), that are intended to help collect information about user behavior.

Coarse conversion values are used when the volume of conversions isn’t high enough to meet the privacy threshold for providing a fine conversion value. The coarse CV can be low, medium, or high, which act as aggregated buckets for pre-defined CV values.

For all three postbacks, you can still receive a null conversion value.

Postback 1 data tiers

The first conversion window ends two days after the user first launches the app. The system prepares the postback after the conversion window ends, unless you lock the conversion window.

Use the table to see what data you receive in the first postback per tier.

Source identifierConversion valueSource app ID
Tier 3
2, 3 or 4 digits

Fine
Tier 2
2, 3 or 4 digits

Fine
Tier 1
2 digits

Coarse
Tier 0
2 digits

Postbacks 2 and 3 data tiers

Use the table below to see what information the second and third postbacks contain for ads in tiers 1, 2, 3. For ads in tier 0, no second or third postback is sent.

Source identifierConversion value
Tier 3
2 digits

Coarse
Tier 2
2 digits

Coarse
Tier 1
2 digits

Coarse
Tier 0NANA

Web-to-app attribution

With web-to-app attribution it is possible to attribute web advertising that directs to App Store product pages. If you have inventory across app and web, this means SKAdNetwork can perform cross-channel attribution.

Note:
Web-to-app attribution is only available on Safari.

Example postbacks

As provided in Apple's documentation, here you can see different examples of SKAN 4 postbacks.

This is the first postback from a web ad, in a high postback data tier. The source-identifier contains four digits, and the postback contains the fine-grained conversion-value.

{
  "version": "4.0",
  "ad-network-id": "com.example",
  "source-identifier": "5239",
  "app-id": 525463029,
  "transaction-id": "6aafb7a5-0170-41b5-bbe4-fe71dedf1e30",
  "redownload": false,
  "source-domain": "example.com", 
  "fidelity-type": 1, 
  "did-win": true,
  "conversion-value": 63,
  "postback-sequence-index": 0,
  "attribution-signature": "MEUCIGRmSMrqedNu6uaHyhVcifs118R5z/AB6cvRaKrRRHWRAiEAv96ne3dKQ5kJpbsfk4eYiePmrZUU6sQmo+7zfP/1Bxo="
}

This is the first postback from a web ad, in a low postback data tier. The source-identifier contains two digits, and the postback includes a coarse-conversion-value.

{
  "version": "4.0",
  "ad-network-id": "com.example",
  "source-identifier": "39",
  "app-id": 525463029,
  "transaction-id": "6aafb7a5-0170-41b5-bbe4-fe71dedf1e31",
  "redownload": false,
  "source-domain": "example.com", 
  "fidelity-type": 1, 
  "did-win": true,
  "coarse-conversion-value": "high",
  "postback-sequence-index": 0,
  "attribution-signature": "MEUCIQD4rX6eh38qEhuUKHdap345UbmlzA7KEZ1bhWZuYM8MJwIgMnyiiZe6heabDkGwOaKBYrUXQhKtF3P/ERHqkR/XpuA="
}