SKAdNetwork Overview
Connect Branch with your SKAdNetwork integrated ad partners for visibility on your privacy-friendly iOS app campaigns.
Overview
SKAdNetwork (SKAN) is Apple’s attribution framework on iOS, providing accurate attribution data to help marketers understand and refine mobile ad campaigns. By concealing details like user-level identifiers that could cause other companies to exploit that data without user consent, SKAdNetwork is the leading attribution framework prioritizing user privacy and security.
Ad Network Support
Ad Partner | SKAdNetwork Status |
---|---|
❌ Not yet supported | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
✅ Forwards individual SKAN postbacks to Branch | |
✅ Forwards individual SKAN postbacks to Branch | |
✅ Forwards individual SKAN postbacks to Branch | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
✅ Forwards individual SKAN postbacks to Branch | |
✅ Forwards individual SKAN postbacks to Branch | |
✅ Forwards individual SKAN postbacks to Branch | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
View Facebook Specific Guide | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
✅ Other SKAN integration type (supply-side support, etc.) | |
❌ Not yet supported | |
❌ Not yet supported | |
✅ Forwards individual SKAN postbacks to Branch | |
View the Google Adwords Specific Guide | |
❌ Not yet supported | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
✅ Forwards individual SKAN postbacks to Branch | |
✅ Forwards individual SKAN postbacks to Branch | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (planned) | |
⚠️ Will forward individual SKAN postbacks to Branch (planned) | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
✅ Forwards individual SKAN postbacks to Branch | |
✅ Forwards individual SKAN postbacks to Branch | |
✅ Forwards individual SKAN postbacks to Branch | |
✅ Forwards individual SKAN postbacks to Branch | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (planned) | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
🚫 Does not plan to support SKAN | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
✅ Forwards individual SKAN postbacks to Branch | |
✅ Forwards individual SKAN postbacks to Branch | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
❌ Not yet supported | |
View the Snap Specific Guide | |
✅ Forwards individual SKAN postbacks to Branch | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
View the TikTok for Business Specific Guide | |
❌ Not yet supported | |
❌ Not yet supported | |
✅ Provides aggregate SKAN data to Branch via API | |
✅ Forwards individual SKAN postbacks to Branch | |
✅ Forwards individual SKAN postbacks to Branch | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
❌ Not yet supported | |
⚠️ Will forward individual SKAN postbacks to Branch (in testing) | |
❌ Not yet supported | |
✅ Forwards individual SKAN postbacks to Branch | |
❌ Not yet supported |
SKAdNetwork Data for Common Ad Partners
Parameter | Snap | TikTok | |||
---|---|---|---|---|---|
Apple Postback Data | |||||
Version | ✘ | ✘ | ✔ | ✔ | ✔ |
Ad Network ID | ✔ | ✔ | ✔ | ✔ | ✔ |
Campaign ID | ✘ | ✘ | ✘ | ✔ | ✔ |
Transaction ID | ✘ | ✘ | ✘ | ✔ | ✔ |
App ID | ✔ | ✔ | ✔ | ✔ | ✔ |
Attribution Signature | ✘ | ✘ | ✘ | ✔ | ✔ |
Redownload | ✘ | ✘ | ✘ | ✔ | ✔ |
Source App ID | ✘ | ✘ | ✔ | ✔ | ✔ |
Fidelity Type | ✘ | ✔ | ✔ | ✔ | ✔ |
Ad Partner Data | |||||
Campaign ID | ✔ | ✔ | ✔ | ✔ | ✔ |
Campaign Name | ✔ | ✔ | ✔ | ✔ | ✔ |
Ad Set ID | ✘ | ✘ | ✔ | ✔ | ✔ |
Ad Set Name | ✘ | ✘ | ✔ | ✔ | ✔ |
Ad ID | ✘ | ✘ | ✘ | ✘ | ✘ |
Ad Name | ✘ | ✘ | ✘ | ✘ | ✘ |
Creative ID | ✘ | ✘ | ✘ | ✘ | ✘ |
Creative Name | ✘ | ✘ | ✘ | ✘ | ✘ |
Benefits of SKAN
Developers have several different options for integrating SKAN. You can either integrate SKAN natively or use the Branch SDK to take care of all of the SKAN-related methods for you. Both of which have their own benefits
Benefit | Details | SKAN Native | SKAN via Branch SDK |
---|---|---|---|
User Privacy Protection | By offering aggregate-level data only, SKAN provides accurate, high-level advertising metrics without compromising users' identities. | ✅ | ✅ |
Verifies App Installs | Because SKAN is built directly into iOS by Apple, it has special access to more accurately record clicks, impressions, and installs. | ✅ | ✅ |
Enhanced Advertiser Insights | Unified report on both SKAN and non-SKAN data to help maximize insights across all channels and platforms directly on the Branch Dashboard | ✅ | ✅ |
Postback Sequence Index | SKAN 4 and later. The possible integer values of 0, 1, and 2 signify the order of postbacks that result from the three conversion windows. For more information, see Apple's Receiving postbacks in multiple conversion windows. | ✅ | ✅ |
Granular Conversion Control | In-depth control of the frequency of updating the conversion value and for which events. | ✅ | ☑️ Branch will update the conversion for all events tracked and mapped by Branch. |
Mobile Ad Fraud | Use an Apple-provided cryptographic signature to validate postbacks forwarded by ad networks. | ❌ | ✅ |
Conversion Value Decoding | For specific ad networks, they can call an MMP-provided API endpoint to understand which event correlates to a particular conversion value. | ❌ | ✅ |
Supported Platforms
The Branch SDK versions below automatically handle SKAdNetwork in-app functionality. If you do not integrate Branch in the platforms below, please Enable SKAdNetwork Natively.
Branch SDK Platform | Required Version for < SKAN 4 | Required Version for > SKAN 4 |
---|---|---|
iOS | v0.35 | v1.45.2 |
React Native | v.5.0.0 | v5.7.0 |
mParticle iOS | v.8.0.0 | v8.1.0 |
Adobe Launch iOS | v.1.3.0 | v2.0.0 |
Cordova | v.4.2.0 | v6.0.0 |
Capacitor | v.2.0.0 | v6.0.0 |
Xamarin | v.7.0.6 | v8.1.2 |
Unity | v.0.6.6 | Not yet supported |
Flutter | v.1.1.0 | v6.5.0 |
How does it work?
- Ad network serves an ad to the Publisher App
- The user clicks on the ad.
- A Click is sent from the Publisher App to the App Store client on the device.
- The user installs the app and performs in-app conversion events.
- A 24-hour looping timer initates after the app is installed and resets with every new higher conversion event.
- The event data is sent from the Advertiser App to the App Store Client on the device.
- For SKAN 3.0 and earlier, the rolling timer expires, and the App Store Client sends a signal postback with campaign information (network, publisher, and campaign ID) to the ad network after an additional 0-24 hour delay. After the rolling timer expires,
- For SKAN 4.0, SKAN sends up to three postbacks to the winning ad network at pre-defined intervals with a random delay of 24-48 hours for the first postback and 24-144 hours for the second and third postbacks.
- For the events, Apple reports a conversion value from 0-63, which the advertiser can set to give some estimates on the users' quality; SKAN 4.0 can send additional granularity.
- The Ad network forwards the postback to Branch.
Note: To avoid an unnecessarily long wait for the postback to be sent to the ad network, Branch has implemented a default cutoff to the looping timer at 24hr. This is to ensure the ad network has what it needs for you to optimize your campaigns more quickly. This is configurable if you’d like it to keep it restarting for longer if you have a longer install to conversion time
SKAdNetwork with Self-Attributing Networks
SKAdNetwork works a little bit differently based on the Self-Attributing Network (SAN). See the individual SAN guides here:
Updated 6 months ago