iOS 14 SKAdNetwork Support for DSPs

With Apple’s announcement on June 24, DSPs will need to start utilizing Apple’s privacy conscious SKAdNetwork framework for install and conversion tracking on iOS14 devices. Smaato is adding support for SKAdNetwork attribution into its SDK along with necessary bid request/response signals. For display, we support <a href>, mraid.open(), window.open() & window.location click redirect methods. The click redirects (ex, HTTP status 3xx) will be followed in the methods mentioned above for display, native and video Ad formats.

What should DSPs do to enable SKAdNetwork attribution with Smaato?

  • DSPs should register as an Ad Network to Apple’s SKAdNetwork API. Click here to register.
  • Supply your public key to Apple and set your postback urls.
  • Provide your SKAdNetwork ID to your Smaato Account Manager.
  • Smaato will get your SKAdNetwork ID(s) added to publishers’ info.plist.
  • DSPs should be able to ingest the list of SKAdNetwork ID(s), version, and source bundle ID information in BidRequest.imp.ext.skadn object of the bid request.
  • If the DSP is responding with a SKAdNetwork enabled campaign, it should respond with SKAdNetwork ID and all relevant fields in the bid response.
  • Advertiser app should be registering its new users to SkAdNetwork via registerAppForAdNetworkAttribution()
  • DSPs should have an install tracking service to handle install data and signature
    from the SKAdNetwork postback.

SKAdNetwork Attribution Workflow

Bid Request

Object: BidRequest.imp.ext.skadn

This object will be populated if all conditions below are met:

  • The DSP has at least one SKAdNetwork ID registered in the publisher’s info.plist
  • The user’s device is operating on iOS14 or above.
  • The Application is integrated with Smaato via a SKAdNetwork supported version.
  • The DSP is on Smaato’s OpenRTB 2.4 and above spec.
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”
sourceapp ID of publisher app in Apple’s App Store. Should match `BidRequest.app.bundle` string “sourceapp”:”880047117”
skadnetids A subset of SKAdNetworkItem entries in the publisher app’s info.plist that are relevant to the DSP. array “skadnetids”:
[“dticjx1a9i.skadnetwork”,
“8srfag4vvc.skadnetwork”]

Example

{
  “imp”: [
    {
      “ext”: {
        “skadn”: {
          “version”: “2.0”,
          “sourceapp”: “880047117”,
          “skadnetids”: [
            “dticjx1a9i.skadnetwork”,
            “8srfag4vvc.skadnetwork”
          ]
        }
      }
    }
  ]
}

Changes in Bid Request Device Object

If the user does not give permission through the AppTrackingTransparency framework for targeting, IDFA field will not be passed. Smaato will offer IDFV and an exchange based device identifier. These two identifiers can be used for fraud prevention and frequency capping, not for targeted advertising or advertising measurement purposes.

Attribute Description Type Example
BidRequest.device.ifa IDFA will only be passed if the user gives the permission through the AppTrackingTransparency framework. string “ifa”:”F52329FE-DAB6-11EA-87D0-0242AC130003”
BidRequest.device.ext.ifv An alphanumeric string that uniquely identifies a device to the publisher. string “ifv”:”A9F6BDD8-3343-4E6D-A283-F98986880335”
BidRequest.device.ext.atts (iOS 14+ only) An integer passed to represent the app’s app tracking authorization status, where
0 = not determined
1 = restricted
2 = denied
3 = authorized
integer “atts”:3
BidRequest.user.id Exchange defined user identifier which will be consistent up to 24 hours within the same application. string “id”:”F4EE2B2D-1B0E-4BA9-8471-28E9ED8FB95C”

Bid Response

Object: BidResponse.seatbid.bid.ext.skadn

For bid requests with SKAdnetwork extension object, the DSP can return a bid response which includes the following fields to enable SKAdNetwork install and conversion attribution. Smaato will validate SKAdNetwork ID, bundle ID fields in the response, and call loadProduct() with appropriate values.

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”:”dticjx1a9i.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.bid.bundle` string “itunesitem”:” 642831690”
nonce An id unique to each ad response. 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”:” 1207472156”
timestamp Unix time in millis string used at the time of signature. string “timestamp”: “1594406341”
signature SKAdNetwork signature as specified by Apple. string “signature”: “MEQCIEQlmZRNfYzK…”

Example

{
  “seatbid”: [
    {
      “bid”: [
        {
          “ext”: {
            “skadn”: {
              “version”: “2.0”,
              “network”: “dticjx1a9i.skadnetwork”,
              “campaign”: “45”,
              “itunesitem”: “880047117”,
              “nonce”: “473b1a16-b4ef-43ad-9591-fcf3aefa82a7”,
              “sourceapp”: “123456789”,
              “timestamp”: “1594406341”,
              “signature”: “MEQCIEQlmZRNfYzKBSE8QnhLTIHZZZWCFgZpRqRxHss65KoFAiAJgJKjdrWdkLUOCCjuEx2RmFS7daRzSVZRVZ8RyMyUXg==”
            }
          }
        }
      ]
    }
  ]
}
Doc Feedback Product Feedback

Last Modified: June 29, 2022 at 9:00 am