SKAdNetwork and iOS 14 click logic

Flowchart

  1. ironSource SDK reads the SKAdNetworkItems from the publisher app’s Info.plist. 
  2. ironSource bid request will include the imp.ext.skadn object for DSPs that are included in the publishers app’s Info.plist. 
  3. If the campaign requires SKAdNetwork support, DSP should include seatbid.bid.ext.skadn in their bid response. 
  4. If the impression is shown and the user clicks, Apple will consider the app for install attribution.
  5. If SKAdNetwork determines that the DSP’s click led to the install, Apple will send the postback directly to the DSP.

Bid Request

If the DSP SKAdNetworkItem appears in the publisher app’s Info.plist, ironSource will include a new object in the bid request that provides the necessary information to create a signature. 

This object will only be present if both the ironSource SDK version and the OS version support SKAdNetwork.

Document versions supported: 2.0 , 2.1 , 2.2

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. Note: With the release of SKAdNetwork 2.1, this field is deprecated in favor of the BidRequest.imp.ext.skadn.versions to support an array of version numbers. String “version” : “2.0”
versions Array of strings containing the supported skadnetwork versions. Always “2.0” or higher. Dependent on both the OS version and the SDK version. String array “versions”: [“2.0”, “2.1”]
sourceapp ID of publisher app in Apple’s App Store. Should match app.bundle in OpenRTB 2.x String “sourceapp”: “880047117”
skadnetids A subset of SKAdNetworkItem entries in the publisher app’s Info.plist, expressed as lowercase strings, that are relevant to the bid request. String array “skadnetids”: [“cdkw7geqsh.skadnetwork”, “qyjfv329m4.skadnetwork”]
ext Placeholder for exchange-specific extensions to OpenRTB. Object “ext” : {}

Request SKAN object Example

{

imp: [

{

ext: {

skadn: {

version: “2.0”,

sourceapp: “880047117”,

skadnetids: [

“cdkw7geqsh.skadnetwork”,

“qyjfv329m4.skadnetwork”

]

}

}

}

]

}

Bid Response

If the bid request includes the BidRequest.imp.ext.skadn object, then a DSP could choose to add the following object to their bid response. If the object is included in the response (all parameters are required), ironSource will submit the click data and signature to the productView for iOS SKAdNetwork attribution.

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”: “cdkw7geqsh.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 String “campaign”: “45”
itunesitem ID of advertiser’s app in Apple’s app store. Should match BidResponse.seatbid.bid.bundle String array “itunesitem”: “123456789
nonce An id unique to each ad response. Refer to Apple’s documentation for the proper UUID format requirements String “nonce”: “473b1a16-b4ef-43ad-9591-fcf3aefa82a7”
sourceapp ID of publisher’s app in Apple’s app store. Should match BidRequest.imp.ext.skad.sourceapp String “sourceapp”: “880047117”
timestamp Unix time in millis string used at the time of signature String “timestamp”: “1594406341232”
signature SKAdNetwork signature as specified by Apple String “signature”: “MEQCIEQlmZRNfYzK…”

Response SKAN object Example

{

seatbid: [

{

bid: [

{

ext: {

skadn: {

version: “2.0”,

network: “cdkw7geqsh.skadnetwork”,

campaign: “45”,

itunesitem: “123456789”,

nonce: “473b1a16-b4ef-43ad-9591-fcf3aefa82a7”,

sourceapp: “880047117”,

timestamp: “1603246928149”,

signature: “MEQCIEQlmZRNfYzKBSE8QnhLTIHZZZWCFgZpRqRxHss65KoFAiAJgJKjdrWdkLUOCCjuEx2RmFS7daRzSVZRVZ8RyMyUXg==”

}

}

}

]

}

]

}

iOS 14.5 click logic

Video

If a DSP returns BidResponse.seatbid.bid.ext.skadn object with a valid itunesitem

  • For VAST 2.0 Videos
    • SKAdNetwork attribution will only be initiated if the <ClickThrough> element lands in the Apple App Store (redirect links are currently not supported).
    • ironSource supports click tracking through the VAST <ClickTracking> element.
  • For VAST 2.0 CompanionAds:
    • SKAdNetwork attribution will only be initiated if the <CompanionClickThrough> element lands in the Apple App Store (redirect links are currently not supported).
    • ironSource supports click tracking through the VAST <CompanionClickTracking> element.

Display

If a DSP returns BidResponse.seatbid.bid.ext.skadn object with a valid itunesitem

Display creatives must implement the clicks by calling: mraid.open()

Upon user click, ironSource will show the iOS StoreKit according to the itunesitem (bundle) received in the bid response.

Please note, any other MRAID method (e.g window.open, window.location) will result in click-tracking discrepancies.