SKAdNetwork Conversion
Choose your SDK version below:
- Apptrove SDK → Recommended for all projects (Latest: v2.0.0)
- Trackier SDK → Will be deprecated in May 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.
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.plistfile
Implementation
Step 1: Configure Info.plist
Add the SKAdNetwork configuration to your Info.plist file:
<key>NSAdvertisingAttributionReportEndpoint</key>
<string>https://apptrovesn.com/.well-known/skadnetwork/report-attribution</string>
After configuring Info.plist, call the initial conversion value (iOS only). Use the SDK that matches your integration (see tabs below).
Step 2: Integration with Apptrove SDK
Initialize the Apptrove SDK and then call postback conversion from any part of your app:
- ✓ Apptrove SDK (Recommended)
- Trackier SDK (Deprecating May 2026)
import 'package:apptrove_sdk_flutter/apptrove_sdk_flutter.dart';
import 'dart:io' show Platform;
Future<void> initializeSDK() async {
final config = AppTroveSDKConfig("YOUR_SDK_TOKEN_HERE", "development");
AppTroveFlutterSdk.initializeSDK(config);
if (Platform.isIOS) {
AppTroveFlutterSdk.updatePostbackConversion(0);
}
}
if (Platform.isIOS) {
AppTroveFlutterSdk.updatePostbackConversion(0); // App open
AppTroveFlutterSdk.updatePostbackConversion(10); // Registration
AppTroveFlutterSdk.updatePostbackConversion(20); // First purchase
AppTroveFlutterSdk.updatePostbackConversion(30); // Subscription
AppTroveFlutterSdk.updatePostbackConversion(40); // High-value
AppTroveFlutterSdk.updatePostbackConversion(50); // Premium
}
import 'package:trackier_sdk_flutter/trackier_sdk_flutter.dart';
import 'dart:io' show Platform;
Future<void> initializeTrackierSDK() async {
final config = TrackierSDKConfig(
appToken: "YOUR_SDK_TOKEN_HERE",
env: TrackierSDKConfig.ENV_DEVELOPMENT
);
Trackierfluttersdk.initializeSDK(config);
if (Platform.isIOS) {
Trackierfluttersdk.updatePostbackConversion(0);
}
}
if (Platform.isIOS) {
Trackierfluttersdk.updatePostbackConversion(0); // App open
Trackierfluttersdk.updatePostbackConversion(10); // Registration
Trackierfluttersdk.updatePostbackConversion(20); // First purchase
Trackierfluttersdk.updatePostbackConversion(30); // Subscription
Trackierfluttersdk.updatePostbackConversion(40); // High-value
Trackierfluttersdk.updatePostbackConversion(50); // Premium
}
Step 4: Track Conversion Events
Track conversion events throughout your app using the examples in the tabs above (values 0–63).
Best Practice: Call updatePostbackConversion immediately after the user action occurs to ensure accurate attribution tracking.
Conversion Value Guidelines
| Value Range | Description | Use Case |
|---|---|---|
| 0-9 | App Engagement | App opens, session starts |
| 10-19 | User Onboarding | Registration, profile setup |
| 20-29 | First Actions | First purchase, first subscription |
| 30-39 | Regular Usage | Repeat purchases, engagement |
| 40-49 | High Value | Premium purchases, upgrades |
| 50-63 | Premium/Loyalty | VIP status, loyalty program |
Best Practices
- Flexible Usage: The SDK's
updatePostbackConversioncan 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: The SDK handles errors internally
- 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:
- Support Email: support@apptrove.com
- Documentation: Apptrove Documentation Portal
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+.