SKAdNetwork

Digital Turbine supports Apple’s SKAdNetwork versions 2.0 and above to facilitate app installation and conversion tracking for our programmatic bidders buying on iOS 14+.

We are adopting a unified approach that allows our buyer-side partners to maximize campaign and creative optimization. We are dedicated to ensuring SKAdNetwork is adopted efficiently and optimally for real-time bidding.

SKAdNetwork DSP Setup

Initial Configuration with Apple

DSP registers for SKAdNetwork support with Apple:

    • Receives SKAdNetwork ID from Apple (must be lowercase)

    • Receives Private Key from Apple 
    • Creates an elliptic curve cryptographic key pair, referred to as the DSP's public key, and shares with Apple

    • Configures endpoint URL to receive SKAdNetwork install validation postbacks

Integration Setup with DT

  • Submit your Legal Entity Name and SKAdNetwork ID to your dedicated account manager as soon as possible to ensure no disruption to supply access.
  • Remove IFA filters from your integration.
  • Update your integration to receive SKAdNetwork Bid Request and Bid Response extension objects and IDFV.  Click here for more details.
  • Concurrently update your integration to receive Contextual Data Signals. Visit our Contextual App Targeting page for more details.
  • When eligible for SKAdNetwork, return a bid response with the necessary information, as described below.

Receiving Postbacks

  • DSPs receive postbacks directly from Apple at their designated endpoints
  • DSPs may forward postbacks to MMPs to enable marketers to have a unified view of their app installs

Testing SKAdNetwork with DSP Test App

Click here for a complete end-to-end guide that will allow you to test your SKAdNetwork setup on DT.

DT's SKAdNetwork Flowchart

Bid Request

If a DSP has at least one SKAdNetwork Item in the publisher app’s Info.plist, DT includes a new object in the bid request that provides the necessary information to create a signature. The object is only present if the DT SDK and iOS versions (iOS 14 and above) support SKAdNetwork.

BidRequest.imp.ext.skadn

Attribute Description Type Example
version Version of SKAdNetwork supported. Always "2.0" or higher. Dependent on both the OS version and the SDK version. String "version":"2.0"
versions Array of strings containing the supported SKAdNetwork versions. Dependent on both the OS version and the SDK version. String "versions": ["2.0", "2.1", "2.2", "3.0", "4.0"]
sourceapp ID of publisher app in Apple’s App Store. Should match BidRequest.app.bundle String "sourceapp":"880047117"
skadnetids A subset of SKAdNetworkIdentifier entries in the publisher app’s info.plist that are relevant to the DSP. String Array ["SKAdNetwork1.skadnetwork"," SKAdNetwork2.skadnetwork"]

Bid Response

If the bid request includes the BidRequest.imp.ext.skadn object, then a DSP must pass all the following parameters using the below object on their bid response. If the object is present in the response, then DT submits the click data and signature to the productView for iOS SKAdnetwork attribution.

BidResponse.seatbid.bid.ext.skadn

Attribute Description Type Example
version Version of SKAdNetwork desired. Must be 2.0 or above. String "version":"2.0"
network Ad network identifier used in signature. Should match one of the items
in the skadnetids array in the request
String "network":"dsp1.skadnetwork"
campaign

Campaign ID compatible with Apple’s spec. As of 2.0, should be an integer between 1 and 100, expressed as a string.

Note: Used in SKAdNetwork 3.0 and below. Replaced by sourceidentifier in 4.0 and above. 

String "campaign":"45"
sourceidentifier

A four-digit integer that ad networks define to represent the ad campaign. Used in SKAdNetwork 4.0+, replaces Campaign ID `campaign`. DSPs must generate signatures in 4.0+ using the Source Identifier. 

For 4.0+, sourceidentifier can be an integer between 1 and 9999.

String "sourceidentifier": "4321"
itunesitem ID of advertiser’s app in Apple’s app store. Should match BidResponse.bid.bundle String "itunesitem":"880047117
nonce An ID unique to each ad response String "nonce": "beeeb65e-b3de-02420004"
sourceapp ID of publisher’s app in Apple’s app store. Should match BidRequest.imp.ext.skad.sourceapp String "sourceapp":"123456789"
timestamp UNIX time in millis string used at the time of signature String "timestamp": "1594406341"
signature SKAdNetwork signature as specified by Apple String "signature": "MEQCIEQZRRyMyUXg=="

Other contextual and device identifiers are critical to maintaining granular targeting post-IDFA. Please visit our Contextual App Targeting page for more details.

FAQs

Will Digital Turbine pass the new BidRequest.imp.ext.skadn object when the DSP’s network_ID is not listed on the publisher’s p.list?

Yes. In this case, Skadnetids is passed as null.

Does an app developer need to publish a new app version to the store to update info.plist data?
Yes.
What happens if the StoreKit fails to load?
iOS DT Exchange SDK supports fallback to Apple Store in cases where we receive a StoreKit failure message starting from version 7.5.0 and above. This only occurs in sporadic edge cases.
In what cases is the BidRequest.imp.ext.skadn object sent?
BidRequest.imp.ext.skadn will only be sent for iOS 14 inventory using DT Exchange SDK 7.7.0+ and DT Fairbid SDK version (TBD)

DT is actively participating in the IAB’s SKAdNetwork Working Group, and OpenRTB support for SKAdNetwork is subject to change as Apple updates its support versions. We welcome your feedback on this matter.

Back to Top ⇧