Set up SKAdNetwork and conversion values


This feature is only available on devices running iOS 14 and above.

SKAdNetwork is Apple's attribution framework for app install and reinstall attribution. The SKAdNetwork workflow goes like this:

  1. Apple gathers attribution information and notifies the relevant ad network.
  2. The network sends a postback with this information to Adjust.
  3. Adjust displays SKAdNetwork data in Datascape.

Listen for conversion value updates

If you use Adjust to manage conversion values, the Adjust backend sends conversion value updates to the SDK. You can set up a delegate function to listen for these changes using the adjustConversionValueUpdated method.

ArgumentsData typeDescription
conversionValueIntegerThe conversion value sent by the Adjust backend.


SKAdNetwork 4.0 callbacks

This method is available in Adjust SDK 4.33.0 and above

SKAdNetwork 4.0 postbacks contain some additional information to give advertisers more insight into their users. When the Adjust backend updates conversion values, this additional information is sent in a payload. You can access this information with the adjustConversionValueUpdated callback method.

ArgumentsData typeDescription
fineValueIntegerThe conversion value sent by the Adjust backend.
coarseValueStringThe coarse conversion value. This value is used if your app doesn't have sufficient installs to reach the privacy threshold. Accepted values:
  • none
  • low
  • medium
  • high
lockWindowIntegerWhether to send the postback before the conversion window ends. 1 indicates the postback will be sent before the conversion window ends. Defaults to 0 in SKAdNetwork 4.0 postbacks and nil in older SKAdNetwork versions.


Update conversion values

Conversion values are a mechanism used to track user behavior in SKAdNetwork. You can map 64 conditions to values from 0-63 and send this integer value to SKAdNetwork on user install. This gives you insight into how your users interact with your app in the first few days.

If you manage your conversion values with Adjust, the backend updates this value in the SDK. You can also update this value by using the updateConversionValue method. This method wraps Apple's updateConversionValue method. It accepts an integer argument representing your updated conversion value.



Set up completion handlers

This feature requires Adjust v4.33.0 and above.

The Adjust SDK contains wrappers for Apple's updatePostbackConversionValue methods. These methods provide more options for handling SKAdNetwork postbacks, including the option to handle failures.

The following methods are supported:



if #available(iOS 16.1, *) {
        coarseValue: SKAdNetwork.CoarseConversionValue.low.rawValue,
        lockWindow: false) { error in
        if let error {
            print(String(format: "An error occurred during completion: %a", error))

Set up direct install postbacks

Direct install postbacks contain only SKAdNetwork information. Information such as campaign data is not included in these postbacks.

You can configure your app to send a copy of winning SKAdNetwork callbacks to Adjust. This enables you to use SKAdNetwork information in your analytics.

To set up direct install postbacks, you need to add the Adjust callback URL to your Info.plist file:

  1. Select Info.plist in the Project navigator in Xcode.
  2. Select the Add button (+) beside a key in the property list editor and press Return.
  3. Enter NSAdvertisingAttributionReportEndpoint as the key name.
  4. Set the Type to String in the pop up menu.
  5. Enter the URL

See Apple's guide on Configuring an Advertised App for more information.

Disable SKAdNetwork communication

The Adjust SDK communicates with SKAdNetwork by default on v4.23.0 and above. The SDK registers for SKAdNetwork attribution upon initialization.

Your config object contains a boolean isSKAdNetworkHandlingActive property that controls this behavior. You can disable SKAdNetwork communication by calling the deactivateSKAdNetworkHandling method with no argument.


You must call the deactivateSKAdNetworkHandling method before initializing the Adjust SDK in your app.

let yourAppToken = "{YourAppToken}"
let environment = ADJEnvironmentSandbox as? String
let myConfig = ADJConfig(
    appToken: yourAppToken,
    environment: environment)