Time to read: 5 min
The article covers the following topics:
SKAdNetwork and the iOS 14 release fundamentally change how attribution is done in the mobile performance marketing space. Affise has prepared a solution, which allows you to work directly with SKAdNetworks as effectively as possible taking into account all limitations and peculiarities.
Start Working with SKAdNetwork
Basically, there are four scenarios:
You own the application for iOS you would like to promote. You work directly in SKAdNetwork, and you would like to accumulate the data in Affise. You need to register at Apple Developer.
You own the application for iOS where you would like to add the advertisement for another application. You work directly in SKAdNetwork, and you would like to accumulate the data in Affise. You need to register at Apple Developer.
You send traffic to the application owner, which contains the advertisement. The owner uses SKAdNetwork, but not Affise. You don't need to register at Apple Developerd.
You sent traffic to the attribution platform (e.x. Appsflyer) integrated with SKAdNetwork. You don't need to register at Apple Developer.
In this guide you can find information about the first three scenarios. If the last scenario is relevant - check our guide about Probabilistic Attribution.
What to begin with?
1) Register at Apple Developer. Once you're done with that, get your Ad Network ID.
2) It's necessary to generate a Public Key. Here you can learn how to do it.
3) Add to Affise all the data to you've got. Create SKAdNetwork profile here: Advertisers -> SKAdNetworks -> Create SKAdNetwork:
❗ By default, only users with General manager type have access to the SKAdNetworks subsection.
The Create SKAdNetwork window contains the following fields:
Title: add the name for SKAdNetwork. It is the mandatory field.
SKAdNetwork ID: insert your/your advertiser's SKAdNetwork ID. If there are several IDs you would like to use, you need to create a separate SKAdNetwork. It is the mandatory field.
Public key: insert the public key you've generated in SKAdNetwork.
Campaign ID: Apple allows creating up to 100 traffic sources per a campaign (offer, application). Here you can determine your sources in several possible ways:
-- up to 100 campaign IDs with 100 affiliates (pids)
-- up to 50 campaign IDs with 50 affiliates and sub2 values combinations
-- up to 100 campaign IDs with one affiliate and 100 sub2 values
There should be no more than 100 sources or sub sources in total. You can combine variants as you want: 25 campaign IDs with affiliate + sub2 combo and 50 campaign IDs with affiliate IDs only, 10 campaign IDs with affiliate + sub2 combo and 80 campaign IDs with sub2 values only, etc.
By this tool you can define targeting according to agreements with your affiliates. Let's say the affiliate #123 has two sources: from France (sub value #1) and from Germany (sub value #2). Then you can create two Campaign IDs: pid 123 + 1 and pid 123 + 2.
4) Add a SKAdNetwork profile to the Advertiser's profile on Affise.
If you're a direct advertiser, you need to create a profile for yourself as an Advertiser and choose the SKAdNetwork you've created.
If you work with a direct advertiser and have your own application in App Store, you need to create a profile for your real Advertiser, so your Advertiser should tell you this information.
If you work with an affiliate of the direct Advertiser, you need to create a profile for your Advertiser (not the direct one), so he should give you this data.
It is possible to add several SKAdNetworks for one Advertiser. It can be useful if your Advertiser is a company when each developer has his own Ad Network ID in SKAdNetwork.
5) The last step is to create an offer. The main principle is 1 offer per 1 application. Why so: each offer should contain Apple App ID:
As for offer goals: possible values are from 0 to 63. You can assign the goal title to any of the values in the way you want, but the goal value should be from 0 to 63.
In order to get postbacks in the correct way you need in total:
Ad Network ID (on the Advertiser's level)
Apple App ID (on the offer's level)
Campaign ID (on the Advertiser's level)
Check whether you have all the values before you start working with SKAdNetwork.
To receive postbacks from SKAdNetwork you need to create a postback link.
The domain for the Admin panel is used in the link. If you have your custom domain, you can use it as well.
The postback link should be set up in SKAdNetwork.
❗ No additional parameters are used in the postback link. Affise receives the information from SKAdNetwork in the form it sends the data in the response.
The postback is sent by SKAdNetwork in JSON format by POST method and contains the following information:
Version: The version of the SKAdNetwork API. The latest is 2.2.
Ad Network ID: your ID in SKAdNetwork if you're a direct Advertiser or ID of your Advertiser, who uses SKAdNetwork.
Campaign ID: the campaign ID you've set up on the SKAdNetwork edit page in Affise. This ID contains affiliate ID and sub2 value.
Transaction ID: the ID of the conversion (unique for each conversion regardless of anything).
App ID: the ID of the application that should exist in the offer in Affise.
Attribution signature: your personal/your Advertiser's Public key that should exist in SKAdNetwork profile in Affise.
Redownload: a flag that indicates the end-user redownloaded and reinstalled the application.
Source App ID: the ID of the application in App Store, which contains an advertisement.
Conversion value: the goal value.
Fidelity type: indicates whether the install was generated via an impression or a click.
The flow of postback validation
Affise received a postback and checks whether there are the needed parameters: Ad Network ID, App ID, Campaign ID. If no - the conversion won't be registered. If yes - see the next point.
The system checks whether there is an offer with this App ID. If no - the conversion won't be registered. If yes - see the next point.
The system checks whether the advertiser of this offer has SKAdNetwork in his profile. If no - the conversion won't be registered. If yes - see the next point.
The system matches the campaign ID in the link with the data of the relevant campaign ID in the SKAdNetwork profile and defines the affiliate ID and sub2 value (if any).
The system checks the conversion value in the link and defines a payout for a conversion.
You can see all the parameters SKAdNetwork sent to you in Statistics -> Server Postbacks slice:
You can also see the conversions in the liked-named slice of Statistics. There is a goal value passed as conversion value & action ID passed as transaction-id. Each conversion went from SKAdNetwork has a comment [SKAdNetwork Attribution], so you'll easily find such conversions in Statistics and distinguish them from ones received via Probabilistic Attribution.
You can set the postback for the SKAdNetwork integration. Only conversions received from SKAdNetwork will be sent via the link, you've set up with the help of this option.
Payouts: There is a thing you should mind when creating an offer for SKAdNetwork. As the only thing that determines the payout is a conversion value (the goal value in Affise), we highly recommend you to create a personal payout for every affiliate who sends traffic for this offer. You can create several personal payouts for the same affiliate with different goal values (from 0 to 63).
Statistics: At the moment we don't provide Statistics on showing all the parameters received in the postback in Conversions slices of Statistics, but we're working on that as well as on an option to filter conversions received from SKAdNetwork. Stay tuned!
Postbacks receiving: There is a delay of up to 24 hours. It means you receive a postback after up to 24 hours since the conversion was made. The certain delay time is determined randomly. For example: the conversion was made at 14:30. A postback can be received at 14.35, at 20:03, at 05:57, etc - at any time within the period of 24 hours.
You may also find the following articles helpful:
If you still have any questions left on integration with SKAdNetwork, feel free to address them to Affise Technical Support Team via email@example.com as long as to contact your Dedicated Account Manager.