Introduction to Singular's SKAdNetwork Solution

What is SKAdNetwork?

SKAdNetwork is an iOS framework for privacy-preserving mobile install attribution. It aims to help measure conversion rates of app install campaigns without compromising users’ identities.

When a user clicks an SKAdNetwork ad and is directed to the App Store, the publishing app and the network provide the store with some basic attribution parameters. After the user installs the app and launches it, the device sends the network notification on a successful conversion. The device sends the attached attribution parameters along with a conversion value that can be updated by the advertised app.

The notification is at least 24 hours after the first app launch and does not contain any device- or user-identifying information. Additionally, the advertised app does not receive any information about the original ad and publisher. This way, the network knows an install has happened, but the install is not tied to a specific user, which preserves the user's privacy.

SKAdNetwork Attribution Parameters

Here are the attribution parameters supported by SKAdNetwork. These are included in the postback sent to the publishing ad network.

Parameter Description
Ad Network ID A unique identifier representing the ad network that served the ad.
Campaign ID A number between 1 to 100 representing the campaign.
Source App ID The App Store ID of the publisher app in which the ad was displayed (from iOS 14).
Redownload A flag that indicates that the user has redownloaded and reinstalled the app.


  • The Source App ID and Redownload flag are only available starting with iOS 14. 
  • The Source App ID is included in the attribution postback only if enough conversions are coming from that specific publisher according to Apple's privacy thresholds to protect the user's privacy.

SKAdNetwork Conversions

Starting with iOS 14, SKAdNetwork introduces conversion values as a way to track post-install events in the short term and measure the quality of your users in an aggregated manner.

The conversion value is a highly limited tool:

  • It's a 6-bit value representing a number between 0 and 63.
  • The device always sends a single postback following an install or redownload. You can update SKAdNetwork with a new conversion value multiple times (as long as you increase the number), but only the last conversion value is included in the postback.
  • Conversion values can only be updated within a limited time window. The initial window is 24 hours from the first launch. Every time you update the conversion value, the window is extended by 24 hours.
  • The conversion value only appears if there are enough installed users from that segment according to Apple’s privacy thresholds.

Singular’s SKAdNetwork Solution

Leveraging SKAdNetwork as an advertiser requires three main components:

  1. SDK implementation and conversion management to generate useful SKAdNetwork datasets.
  2. Receiving and validating SKAdNetwork postbacks from your ad network partners.
  3. Reporting and analytics based on SKAdNetwork data and the ability to combine it with other datasets to make sense of the attribution parameters.

Singular provides solutions for each one of these areas, as we’ll cover below.

See also: Advanced Measurement using SKAdNetwork: Unlocking ROAS.

SKAdNetwork SDK and Conversion Management

The new version of the Singular SDK for iOS has built-in support for SKAdNetwork. To add it, follow our guide for Adding SKAdNetwork Support.

For customers using our server-to-server integration, see SKAdNetwork S2S Implementation Guide.

In Singular, you can create multiple conversion models, test them to compare their simulated results side by side, and choose the model that works best for your needs directly from your dashboard.

Our SDK will then update the conversion values automatically based on your chosen model.

To learn more about our conversion models, see Understanding Singular's Conversion Value Management.

SKAdNetwork Data Collection and Validation

Singular supports collecting and validating the cryptographically-signed SKAdNetwork postbacks from each ad network to identify any issues and protect against fraudulent activity.

Singular can collect SKAdNetwork data in different ways, depending on the partner:

  • Collecting SKAdNetwork data results from the ad networks aggregated APIs.
  • Receiving real-time postbacks from the ad networks with the SKAdNetwork signatures.
  • Receiving real-time postbacks directly from the devices using our Secure-SKAN setup to protect against conversion manipulation.

Once SKAdNetwork is onboarded in your account, we automatically use the relevant integration method for each partner.

SKAdNetwork Time Windows

For the purpose of this explanation, assume that you’ve set a conversion window of 24 hours in Singular.

To understand the SKAN postback, you need to understand the three timers at play:

  • SKAdNetwork’s conversion event timer (SKAN event timer): After the install has been completed, SkAdNetwork starts a 24-hour time window for conversion events. Any time a conversion event occurs, the conversion value is updated and the timer resets. When 24 hours expire without any conversion events, the conversion value is locked.
  • Singular’s conversion event timer: Singular has its own time window for conversion events that starts after install. However, this timer is not reset even when conversion events occur. By default, this is a 24-hour time window, but can be adjusted in the Singular app.
  • SKAdNetwork’s postback timer: this is a randomized timer of up to 24 hours. After the conversion event timer has expired, the postback is prepared and held for a random time in between 0 to 24 hours, and then sent to trackers. There is no way to accurately estimate this randomized timer.

Conversion events are logged and attributed while both the SKAN event timer and the Singular event timer are active. If either is locked, no more conversion events are logged for this postback.

Note: Conversion events are any user activity events that you have defined in your conversion model. In-app purchases are common conversion events.

Let’s say a postback is received on a Thursday at 8 AM. How does Singular estimate when the user installed the app?


In the best-case scenario, the install occurred on Wednesday at 8 AM. For this to happen:

  1. The install is the first conversion event that starts both the SKAN event timer and the Singular event timer.
  2. There are no more conversion events, i.e. the user did not make any more purchases.
  3. The random timer begins and expires immediately. The postback is sent at the start of the 24-hour window.

In the worst-case scenario, the install occurred on Monday at 8 AM. For this to happen:

  1. The install is the first conversion event that starts both the SKAN event timer and the Singular event timer.
  2. Just before both event timers expire at 8 AM on Tuesday, another conversion event occurs. The SKAN event timer is reset.
  3. The Singular event timer expires at 8 AM on Tuesday. No more conversion events may be recorded. The SKAN event timer now has 24 hours without conversion events.
  4. The SKAN event timer expires at 8 AM on Wednesday. The 24-hour random timer begins.
  5. The random timer expires at the end of its 24-hour window, and the postback is sent.

In the best-case scenario, the install occurred 24 hours before the postback. In the worst-case scenario, the install occurred 72 hours before the postback. Singular averages these two scenarios and estimates that the install occurred 48 hours before the postback.

SKAdNetwork Reporting and Combining

Once the SKAdNetwork data is collected and validated, you can analyze the results in our SKAdNetwork reports together with the rest of your statistics. We use our standard data connectors to pull the ad network statistics and combine them with their SKAdNetwork results to provide actionable insights.

For more information, see the SKAdNetwork Raw Data and Reports FAQ.