adjust-icon

Set up SKAdNetwork and conversion values

StoreKit Ad Network (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.

Disable SKAdNetwork communication

Method signature
void deactivateSKAdNetworkHandling()
Added in v4.23.0

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.

AdjustConfig adjustConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.Sandbox, true);
//...
adjustConfig.deactivateSKAdNetworkHandling();
//...
Adjust.start(adjustConfig);

Update conversion values

Method signature
static void updateConversionValue(int conversionValue)

Conversion values are a mechanism used to measure user behavior in SKAdNetwork. You can map 64 conditions to values from 0 through 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 servers update 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.

Adjust.updateConversionValue(6);

Listen for changes to conversion values

Property declaration
typedef void ConversionValueUpdatedCallback(num? conversionValue);

If you use Adjust to manage conversion values, the Adjust’s servers send conversion value updates to the SDK. You can set up a delegate function to listen for these changes using the conversionValueUpdatedCallback method. Pass your function as an argument.

AdjustConfig adjustConfig = new AdjustConfig(yourAppToken, environment);
config.conversionValueUpdatedCallback = (num? conversionValue) {
print('[Adjust]: Received conversion value update: ' + conversionValue!.toString());
};
Adjust.start(adjustConfig);

Example

This example shows how to log the following when the conversion value updates:

  • A message confirming the conversion value update
  • The new conversion value
main.dart
import 'package:adjust_sdk/adjust.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
initPlatformState() async {
AdjustConfig config =
new AdjustConfig('{YourAppToken}', AdjustEnvironment.sandbox);
config.logLevel = AdjustLogLevel.verbose;
config.conversionValueUpdatedCallback = (num? conversionValue) {
print('[Adjust]: Received conversion value update: ' +
conversionValue!.toString());
};
Adjust.start(config);
}

SKAdNetwork 4.0 callbacks

Added in v4.33.0

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

ArgumentsData typeDescription
fineValueNSNumberThe conversion value sent by Adjust’s servers
coarseValueNSStringThe coarse conversion value. This value is used if your app doesn’t have sufficient installs to reach the privacy threshold.
  • none
  • low
  • medium
  • high

Apple sends none whenever none of the conditions that are set for low, medium, and high were met.
lockWindowNSNumberWhether 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

Example

This example shows how to log the the fine conversion value, the coarse conversion value, and whether the SKAdNetwork postback is set to send before the conversion window ends.

import 'package:adjust_sdk/adjust.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
initPlatformState() async {
AdjustConfig config =
new AdjustConfig('{YourAppToken}', AdjustEnvironment.sandbox);
config.logLevel = AdjustLogLevel.verbose;
config.Skad4ConversionValueUpdatedCallback = (num? conversionValue, String? coarseValue, bool? lockWindow) {
print('[Adjust]: Conversion value updated. Callback received');
print('[Adjust]: Conversion value: ' + conversionValue!.toString());
print('[Adjust]: Coarse conversion value: ' + coarseValue!);
print('[Adjust]: Will send before conversion value window ends: ' lockWindow!.toString());
};
Adjust.start(config);
}

Set up direct install 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 address https://adjust-skadnetwork.com.