Skip to main content

SKAdNetwork Conversion

SDK Version Selection

Choose your SDK version below:

  • Apptrove SDK → Recommended for all projects (Latest: v2.x.x)
  • Trackier SDK → Will be deprecated in August 2026 (v1.x.xx)

Use the tabs below to view SKAdNetwork postback code for your chosen SDK.

This guide provides instructions for implementing SKAdNetwork postback conversion with the Apptrove Flutter SDK. SKAdNetwork postback conversion allows you to track user engagement and conversion events for iOS 14.5+ apps.

Overview

SKAdNetwork postback conversion is Apple's privacy-focused attribution system that allows you to track conversion events without compromising user privacy. This is essential for iOS 14.5+ apps that want to measure campaign effectiveness while respecting user privacy.

note

Important: SKAdNetwork postback conversion can be called from any part of your app to track user engagement and conversion events.

Prerequisites

  • iOS 14.5 or later
  • Apptrove Flutter SDK installed
  • Access to your app's Info.plist file

Implementation

Step 1: Configure Info.plist

Add the SKAdNetwork configuration to your Info.plist file:

<key>NSAdvertisingAttributionReportEndpoint</key>
<string>https://apptrovesn.com</string>
Enabling SKAdNetwork

After configuring Info.plist, you must explicitly enable SKAdNetwork in your SDK configuration before initialization:

config.enableSkanAttribution();

From Apptrove SDK v2.0.5 onwards, calling this method will also automatically handle the initial SKAdNetwork registration (conversion value 0) for you!

Step 2: Integration with Apptrove SDK

Initialize the Apptrove SDK and then call postback conversion from any part of your app:

main.dart
import 'package:apptrove_sdk_flutter/apptrove_sdk_flutter.dart';
import 'package:flutter/services.dart';
import 'dart:io' show Platform;

Future<void> initializeSDK() async {
final config = AppTroveSDKConfig("YOUR_SDK_TOKEN_HERE", "development");

// Enable SKAdNetwork Attribution (v2.0.5+)
config.enableSkanAttribution();

AppTroveFlutterSdk.initializeSDK(config);
}
Disabling SKAdNetwork

SKAdNetwork attribution is disabled by default. If you need to explicitly disable it (e.g., depending on user consent or specific build configurations), you can use the disable method before initialization:

config.disableSkanAttribution();
Usage Examples
if (Platform.isIOS) {

// Example 1: Basic conversion update (e.g., Registration)
try {
final result = await AppTroveFlutterSdk.updatePostbackConversion(10);
print('updatePostbackConversion success: $result');
} catch (e) {
print('SkanupdatePostbackConversion error: $e');
}

// Example 2: Update with coarse value and lock window (iOS 16.1+)
try {
final result = await AppTroveFlutterSdk.updatePostbackConversion(
20,
coarseValue: AppTroveCoarseValue.high,
lockWindow: true
);
print('updatePostbackConversion success: $result');
} catch (e) {
print('SkanupdatePostbackConversion error: $e');
}

// Example 3: Test conversion value with coarse value .low
try {
final result = await AppTroveFlutterSdk.updatePostbackConversion(
0,
coarseValue: AppTroveCoarseValue.low,
lockWindow: false
);
print('updatePostbackConversion success: $result');
} catch (e) {
print('SkanupdatePostbackConversion error: $e');
}

}

Step 4: Track Conversion Events

Track conversion events throughout your app using the examples in the tabs above (values 0–63).

note

Best Practice: Call updatePostbackConversion immediately after the user action occurs to ensure accurate attribution tracking.

Conversion Value Guidelines

Value RangeDescriptionUse Case
0-9App EngagementApp opens, session starts
10-19User OnboardingRegistration, profile setup
20-29First ActionsFirst purchase, first subscription
30-39Regular UsageRepeat purchases, engagement
40-49High ValuePremium purchases, upgrades
50-63Premium/LoyaltyVIP status, loyalty program

Best Practices

  • Flexible Usage: The SDK's updatePostbackConversion can be called from any part of your app
  • Meaningful Values: Use conversion values that represent user value (0-63)
  • Timing: Send conversion values immediately after the event occurs
  • Validation: Always validate conversion values before sending
  • Error Handling: Use try-catch blocks to handle postback errors correctly
  • iOS Only: SKAdNetwork is only available on iOS devices
  • Platform Check: Consider checking platform before calling on cross-platform apps

Troubleshooting

Postback Not Sent

  • Check if SKAdNetwork is available on the device (iOS 14.5+)
  • Verify the conversion value is within 0-63 range
  • Check console logs for error messages

Integration Issues

  • Verify the app token is correct
  • Ensure SDK is properly initialized
  • Check Info.plist configuration for postback endpoint

Support

For technical support and questions:


This guide provides implementation of SKAdNetwork postback conversion with the Apptrove Flutter SDK, ensuring proper attribution tracking while respecting user privacy on iOS 14.5+.