Understanding the SKAdNetwork Framework
Published: 2020-09-11 13:27:51

*This is the first of a series of posts regarding mobile marketing industry changes presented by iOS 14.* 

One of the most significant updates from WWDC this year regarding iOS 14 was the emphasis of [SKAdNetwork](https://developer.apple.com/documentation/storekit/skadnetwork) and [AppTrackingTransparency](https://developer.apple.com/documentation/apptrackingtransparency) . These changes are set to completely change how mobile marketing and performance are measured. In this blog series, I'll be diving into the specifics of analyzing performance of marketing campaigns under iOS 14. I'll go through `SKAdNetwork` as a framework, receiving postbacks and tracking conversions, and `AppTrackingTransparency` specifics. Hopefully this series helps you prepare for iOS 14 when these new privacy features arrive early next year.

Let's begin by discussing the `SKAdNetwork` Framework.

## **SKAdNetwork**

The purpose of `SKAdNetwork`, according to Apple, is "*helping advertisers measure the success of ad campaigns while maintaining user privacy*". The framework was introduced along with iOS 11.3 in 2018. With iOS 14, `SKAdNetwork` will gain the ability to track conversion events. 

There are three main components in this framework:

1. **Ad networks:** sign ads and receive install validation postbacks when ads produce conversions
2. **Source apps:** display ads provided by the ad networks
3. **Advertised apps:** appear in signed ads

### **Ad Networks**

Ad networks register themselves with Apple so they can receive install validation postbacks via the `SKAdNetwork` API. Registering an ad network can by done visiting the [Ad Network ID Request Form](https://developer.apple.com/contact/request/ad-network-id/) and will result in the registered network obtaining a network ID.

### **Source Apps**

Developers need to add the ad network ID to their app's `Info.plist` file if they want to display ads from an ad network.

Displaying an advertised product happens by calling the  [loadProduct(withParamters:completionBlock:)](https://developer.apple.com/documentation/storekit/skstoreproductviewcontroller/1620632-loadproduct) method. The method requires a signature key that the ad network generates, known as the [SKStoreProductParameterAdNetworkAttributionSignature](https://developer.apple.com/documentation/storekit/skstoreproductparameteradnetworkattributionsignature).

Ad networks use [install validation keys](https://developer.apple.com/documentation/storekit/skadnetwork/ad_network_install_validation_keys) when calling the product view controller's method for loading a product. The keys describe an impression of an ad campaign; the information they contain associates an app installation with an ad campaign. According to what we know, `SKAdNetwork` can be used to track campaigns and ad groups. However, each network can only track 100 unique entities at a time.

### **Advertised Apps**

The two main responsibilities of the advertised app are to call the [registerAppForAdNetworkAttribution()](https://developer.apple.com/documentation/storekit/skadnetwork/2943654-registerappforadnetworkattributi) method when the app first launches, and to optionally call the [updateConversionValue(_:)](https://developer.apple.com/documentation/storekit/skadnetwork/3566697-updateconversionvalue) method. The latter method may be called more than once during a period of time according to specific timer logic described later in this post. Both methods are provided by the `StoreKit` framework, and they are both capable of generating an install notification. However, the `registerAppForAdNetworkAttribution()` method postback does not contain any conversion-related data.

## **Conclusion**

Ad Networks, Source Apps, and Advertised Apps are the main components that make up the `SKAdNetwork` framework. In my next article, I'll delve deeper into receiving postbacks in this new framework, as well as tracking conversions and campaigns in `SKAdNetwork`.

*If you are looking for a new reporting solution to prepare for iOS 14, [reach out to us](https://hello.xyla.io/get-started) and see if Xyla's automation and analytics software is right for you. If you are looking for an iOS 14 consultant for your mobile marketing team, contact our sister company [Incipia](https://incipia.co).*