iOS SKAdNetwork support

Read time 11 minutes

This guide represents Unity's current proposed changes to Unity Ads auction logic for our programmatic partners. We encourage you to revisit this documentation periodically to ensure that you have the most up-to-date guidance.

Bid Request Change

BidRequest.imp.ext.skadn

If a DSP has at least one SKAdNetworkItem in the publisher app's Info.plist, Unity will include this object in the bid request. This provides the information required to create a signature.

FieldTypeDescriptionExample
sourceapp
stringPublisher app ID in Apple's App Store. Should match app.bundle value in the bid request.

"sourceapp":"123456789"

skadnetids
string array

A lowercase list of DSP-specific SKAdNetworkItem entries that appear in the publisher app's Info.plist_ file.

"skadnetids": ["dsp1.skadnetwork"]

versions
string arrayArray of strings containing the supported skadnetwork versions. Dependent on both the OS version and the SDK version.

"versions":["2.0","2.1","3.0"]

BidRequest.device.ext.atts

Unity will include the status for app tracking authorization in the BidRequest.device.ext.atts field. For more information about this field, refer to Apple's API documentation.

FieldTypeDescriptionExample
atts
int

The status value for app tracking authorization. Possible values are:

  • 0 = not determined
  • 1 = restricted
  • 2 = denied
  • 3 = authorized

"atts":2

Bid Response Change

BidResponse.seatbid.bid.ext.skadn

If a bid request includes a BidRequest.imp.ext.skadn, a DSP can send a BidResponse.seatbid.bid.ext.skadn object in response. If present, Unity will use the signature of this object for attribution. For more information, refer to Apple's API documentation.

FieldTypeDescriptionExample
signature
string

SKAdNetwork signature specified by Apple.

"signature": "WOBQQIRTnAcfYzF..."

network
string

Ad network identifier used in signature. This must match one of the items in the skadnetids array in the request.

"network":"5HUO92BLLQ.skadnetwork"

version
stringVersion of desired SKAdNetwork.

"version":"2.0"

campaign
string

Campaign ID compatible with Apple's spec. As of version 2.0, this must be an integer between 1 and 100, expressed as a string.

"campaign":"83"

itunesitem
stringAdvertiser app ID in Apple's App Store. This must match bid.bundle in the bid response.

"itunesitem":"987654321"

nonce
stringAn ID that is unique to each ad response.

"nonce":"385c9n44-a9ik-28fd-8247-gjk2efoa56a9"

sourceapp
string

ID of publisher app in Apple's App Store. This must match imp.ext.skadn.sourceapp in the bid request.

"sourceapp":"123456789"

timestamp
stringUnix time in milliseconds at the time the signature was generated.

"timestamp": "1225091839"

fidelities
object arraySupports multiple fidelity types introduced in SKAdNetwork v2.2.
"fidelities": 
[ { 
  "fidelity": 0, 
  "signature": 
  "MEQCIEQlmZRNfYzK…", 
  "nonce": "473b1a16…", 
  "timestamp": "1603246928149" 
} ]
sourceidentifier
string

A four-digit integer that ad networks define to represent the ad campaign. Used in SKAdNetwork 4.0 and later, and replaces the BidResponse.imp.ext.skad. field.

"sourceidentifier": "1234"

bid.ext.skadn.fidelities

If a bid request includes a BidRequest.imp.ext.skadn, a DSP can send a BidResponse.seatbid.bid.ext.skadn object in response. If present, Unity will use the signature of this object for attribution. For more information, refer to Apple's API documentation.

FieldTypeDescriptionExample
fidelity
intThe fidelity-type of the attribution to track.

"fidelity": 0

nonce
string

An ID that is unique to each ad response. Refer to Apple's documentation for the proper UUID format requirements.

"nonce":"385c9n44-a9ik-28fd-8247-gjk2efoa56a9

timestamp
stringUnix time in milliseconds at the time the signature was generated.

"timestamp": "1225091839"

signature
stringSKAdNetwork signature specified by Apple.

"signature": "MEQCIEQlmZRNfYzK…"

Device IDs

FieldTypeDescriptionExample
Device.ifa
string

Preferred device advertising identifier (IDFA). It has a value of 00000000-0000-0000-0000-000000000000 when permission to track has not been granted.

ABC123AB-1234-5678-A1B2-123ABCBCD789

Device.ext.ifv
stringIDFV of the device in the publisher. This is a unique identifier across apps from the same vendor.

ABCDEFGH-ABCD-1234-1234-ABCDEFGHABCD