Overview: What is SKAdNetwork?
SKAdNetwork, and the iOS 14 release, fundamentally changes how attribution is done in the mobile performance marketing space. Specifically, as it relates to the following:
IDFA (the iOS Advertising Device ID) - Usage now requires explicit user consent and the opt-in rates are expected to be very low (AdXChanger). This effectively ends the IDFA as a reliable identifier of users.
Attribution - Apple is effectively taking attribution in-house in an effort to ensure user privacy. User clicks will no longer be routed through any third party attribution provider (MMP).
How does Everflow work with SKAN (SKAdNetwork)?
The main goal behind Everflow’s SKAN solution is to provide a flexible way for networks to handle attribution. Here are some key points that allow Everflow to handle attribution in the wake of Apple's restrictions.
- Everflow is agnostic of the origin of the attribution postback received. As long as the postback satisfies the format imposed by Apple, it is considered a SKAN attribution postback.
- Everflow can forward any postback to another platform such as a MMP or any other 3rd party. Each SKAdNetwork entry you set up in Everflow has an unlimited number of 3rd party postbacks that can be fired. Furthermore, 3rd party postbacks can be enriched with parameters that are required by MMPs.
You can choose whether:
- The conversion will be fired in Everflow directly when receiving the postback, or,
- The conversion is relayed through a 3rd party that fires a conversion to Everflow.
Getting Started
How to Prepare on the Network side
- Register with Apple for a SKAdNetwork ID. Each App ID can have one SKAdNetwork ID.
- Create a pair of Keys: Public & Private. Follow Apple’s documentation for generating your SKAdNetwork’s key pair. Your Public Key is to be shared with Apple when registering with a SSP/Publisher. Your Private Key encodes unique values about the conversion such as Campaign IDs and timestamp.
- Decide which platform will receive the SKAdNetwork validation postback. While we strongly recommend pointing the postback to Everflow, it could be a MMP or another platform.
If Everflow is to receive the postback, the URL will look like this with your conversion domain plugged in:
https://[everflow-network-conversion-domain]/api/skad
How to Prepare on the Publisher side
Every potential publishing app needs to add the SKAdNetwork ID to its app’s information property list (Info.plist) in order for attribution to work. In other words, you must establish a dialog with all publishers to figure out how their SKAdNetwork IDs will be listed.
In addition to the Ad itself, the Publishing App needs to have access to the signature executed by combining the relevant attribution information (SKAdNetwork ID, Campaign ID, Source ID, etc.) and signing it with the SKAdNetwork’s Private Key.
Attribution Flow & Challenges
High-Level Flow
- User sees the Ad.
- Optional - An impression can be fired server-side to Everflow.
- User clicks on the Ad.
- A click is fired server-side to Everflow.
- User is directed to the App Store.
- User installs the App.

Source: https://developer.apple.com/documentation/storekit/skadnetwork
A tracking link is NOT used to send the user to the App Store. Apple tracks the activity via the parameters passed at the time of the click/impression, and authenticity is guaranteed via the signatures and the encoded values. Since a tracking link is not used, the publisher will have to fire the click (and optionally, the impression) via a server-side mechanism to Everflow.
Apple can take up to 24 hours to fire the postback. The postback from Apple is triggered from the user's device. Once the postback is received by Everflow (or another platform), it will be verified using Apple’s Public Key.
Apple's SKAdNetwork Postback Explained
Below is the payload that Apple will be firing to the endpoint (https://[everflow-network-conversion-domain]/api/skad) that was configured previously.
For Apple's official documentation - [Click Here]
Challenge #1 : Impression and Click attribution
Because of Apple's regulations and tracking links are not used, tying a conversion to a click is not possible when advertisers strictly use the SKAdNetwork framework.
To solve this, the publishing platform will need to fire server-side clicks to Everflow.
Server-Side Click’s Journey: Publisher Parallel Click > Everflow > MMP
The user_agent and user_ip need to be sent with the server-side click to Everflow, and Everflow will fire that click to the MMP. Using the IP and User Agent, the MMP will be able to attribute the user to the conversion event.
By implementing the use of server-side clicks, campaign-level metrics such as CVR will still be accessible in Everflow.
Challenge #2: Limited number of campaign/conversion values
The SKAN method limits the number of values that can be used by one SKAdNetwork. This limitation will affect both the number of sources and the number of events that can be handled.
Here is a brief summary of these thresholds and how this can be configured in Everflow.
- Every SKAdNetwork ID can have up to 100 Campaign IDs. Think of these like Sub ID (sub1-5) values. Campaign IDs are created in Apple. You must map the Campaign ID to the Offer, Partner or Offer/Partner combination in Everflow.
- Every SKAdNetwork ID can have up to 64 Conversion Value IDs. These are Events. Conversion Value IDs are created in Apple. You must map the Conversion Value ID to an Offer or Advertiser-level Event in Everflow.
- Source IDs can be configured at the Partner level in order to associate a Partner with one or more Source ID(s).
Attribution Methods
Everflow Only
Without an attribution partner, the integration only requires that postbacks are sent to Everflow.
- The minimal setup will look like this:

- In this case, attribution will be determined only based on the mapping configured in Everflow.
MMPs
If you choose to go with an external attribution partner (MMP), some additional steps are required to configure in Everflow. For most MMP integrations, the process is as follows:
- Everflow receives the original conversion postback from Apple. The postback is not generating a conversion. Please note that the option to skip conversion processing is available in the SKAdNetwork configuration.
- The postback is forwarded to the MMP after being enriched with their required macros. You can map these macros to parameters using 3rd party postbacks in Everflow.
- With the data the MMP receives, it maps attribution to Everflow entities (i.e. event_id or affiliate_id).
- Using either the regular conversion endpoint or dedicated SKAN advertiser endpoint in Everflow, the MMP fires a postback that will register a clickless conversion.

- In order to provide the MMP with the required information, Everflow offers the following macros for enriching the initial Apple postback.
- To map these in Everflow, navigate to Advertisers - App Attribution > Third Party Postbacks.
Below is an overview for how Everflow enriches the original Apple postback for each partner based on their requirements.
Adjust
For Adjust documentation - [Click Here]
Appsflyer
For Appsflyer documentation - [Click Here]
- In order for Everflow to fire conversions to Appsflyer, you will need to set up a 3rd party postback that looks like this: https://skadpostbacks.appsflyer.com/api/postbacks

Appsflyer requires the following parameters to be enriched in the received SKAdNetwork postback, so be sure to append these to the URL above:
For additional parameters and more information - [Click Here]
- Once Appsflyer has processed the SKAdNetwork postback, they will fire at least one postback to Everflow. Depending on the conversion value(s) set by the advertiser app, any number of installs or events may be fired.
- You will need to enter your Endpoint Address. Use the following, making sure to replace the domain placeholder with your own tracking domain:
Please reach out to your Appsflyer advertiser to understand how the conversion values will be mapped to your Everflow events.
Branch
For Branch documentation - [Click Here]
- In order for Everflow to fire conversions to Branch, you will need to set up a 3rd party postback that looks like this: https://api2.branch.io/v1/skadnetwork
- Once Branch has processed the SKAdNetwork postback, they will fire at least one postback to Everflow. Depending on the conversion value(s) set by the advertiser app, any number of installs or events may be fired.
- You will need to enter your Postback Address in Branch. Use the following, making sure to replace the domain placeholder with your own tracking domain:
Please reach out to your Branch advertiser to understand how the conversion values will be mapped to your Everflow events.
Kochava
For Kochava documentation - [Click Here]
Singular
For Singular documentation - [Click Here]
More details to come on the postback integration between Singular and Everflow.
Testing Your Integration
First, make sure you have:
- a SKAdNetwork ID
- the postback pointing to Everflow
- the SKAdNetwork ID / Campaign ID configured in Everflow
- a publisher willing to test
- an advertiser's app to install which is configured with SKAN
The publisher needs to have:
- added the SKAdNetwork ID to their info.plist
- the ability to call Everflow to sign the ad (Ask the customer success team for instructions)
(Optional) You would need to generate a fake postback in order to test between Everflow and the MMP to which you are firing installs.