SKAdNetwork 2.2 Support

Bid Request

Bid requests should make it clear which versions of SKAdNetwork are supported. It’s currently possible for 2.0, 2.1, and 2.2 to be supported in the same request.

Old Bid Request

New Bid Request

BidRequest.imp.ext.skadn

BidRequest.imp.ext.skadn

{
"version": "2.0"
}

{
"version": "2.0",
"versions": ["2.0", "2.1", "2.2"]
}

Bid Response

View Through Attribution (VTA)

SKAdNetwork introduces view through attribution (VTA), allowing buyers to claim credit for installs that occur when a user installs an app after having seen an ad within 24 hours. Credit submission is done using a new Apple API, and requires the ad renderer to define a startImpression time and an endImpression time. Apple will only consider views that lasted 3+ seconds for attribution credit.

Apple distinguishes a click attribution claim from a view attribution claim using a new fidelity-type attribute. The fidelity-type must be declared inside the attribution signature, and in the click claim itself. (Currently, it does not appear that it needs to be declared in the view claim). It is also present in the install postback, which allows advertisers to measure how many installs were driven by each fidelity-type.

Current fidelity-types:

Attribution Claim

Fidelity-type

View (min. 3 seconds)

0

Click

1

Given that each fidelity type requires its own signature, the bid response needs to change so that the SSP can accept signatures for multiple fidelity types. The bidder should be able to choose which fidelity types they wish to submit claims for.

BidMachine is proposing the following options for how to adapt the bid response.

Old Bid Response

New Bid Response

BidResponse.seatbid.bid.ext.skadn

BidResponse.seatbid.bid.ext.skadn

{
"version": "2.0",
"network": "net1.skadnetwork",
"campaign": "1",
"itunesitem": "123456789",
"nonce": "12345",
"sourceapp": "987654321",
"timestamp": "1594509109",
"signature": "sig"
}

{
"version": "2.0",
"network": "net1.skadnetwork",
"campaign": "1",
"itunesitem": "123456789",
"sourceapp": "987654321",
"fidelities": [
{
"fidelity": 0,
"signature": "sig1",
"nonce": "12345",
"timestamp": "1594509109"
},
{
"fidelity": 1,
"signature": "sig2"
"nonce": "12345",
"timestamp": "1594509109"
}
]
}

Client Behavior

Clicks

Click behavior is largely unchanged. The fidelity-type field should be included in the call to loadProduct() when using v2.2.

View

If view through attribution is requested by the bidder, the client should create the SKAdImpression object and set the startImpression time at the same time as when the client considers an impression to have been rendered. This is typically the time at which other impression trackers are fired.