Introduction
Fyber is adding support for Apple’s SKAdNetwork version 2.0 to facilitate app install and conversion tracking for our programmatic bidders buying on iOS 14+.
We are adopting a unified approach that allows our buy-side partners to maximize campaign and creative optimization. We are dedicated to ensuring SKAdNetwork is adopted in an efficient and optimal manner for real-time bidding.
Note
Fyber is actively participating in the IAB’s SKAdNetwork Working Group and this proposal is subject to change. We welcome your feedback.
Implementation
- DSPs should register for SKAdNetwork
- Fyber compiles an open-source list of DSP SKAdNetwork IDs
- Fyber instructs all publishers to add our complete list of our integrated demand partners SKAdNetwork IDs to their Info.plist to enable attribution measurement
- Upon ad click, Fyber’s SDK calls loadProduct() with the DSP’s SKAdNetwork values and signature
- DSPs receive postbacks directly from Apple based on their designated endpoint given during sign-up
What's Required from Demand Partners to use SKAdNetwork on Fyber?
- Submit your Legal Entity Name and SKAdNetwork ID to your dedicated account manager as soon as possible, to ensure no disruption to supply access
- When eligible for SKAdNetwork, return a bid response with the necessary information, as described below
DSP Checklist
Use the following checklist to prepare for iOS 14 and SKAdNetwork changes:
- DSPs should register for SKAdNetwork ID from Apple and share SKAdNetwork ID with Fyber.
- DSPs receive postbacks directly from Apple based on their designated endpoint given during sign-up
- Remove IFA filter that omits bid requests without IFA (if applicable)
- Confirm when DSP is ready to receive ext.skadn Bid Request and Bid Response objects
- Upgrade DSP integration to receive BidRequest.imp.ext.skadn and BidResponse.seatbid.bid.ext.skadn
- Fyber sends a manual bid request with BidRequest.imp.ext.skadn parameters and is available to manually vet bid response with BidResponse.seatbid.bid.ext.skadn parameters from DSP
- End-to-end test SKAdNetwork using Fyber's self-serve DSP Test App:
- Update to the latest Test App version found in the App Links page
- Setup a test campaign targeting your test devices with Fyber latest test app version installed. Note: Your device should be using iOS 14
- Set sourceapp value to 0, as per Apple suggestions, because most test apps are not live on the AppStore and do not have AppStore IDs
- Install the SKAdNetwork profile, IA pingback delay, which reduces the conversion value and postback window to 5-10 minutes, down from 24-48 hours
- Use Fyber's Ad Lifecycle tool to trigger a sample bid request from Fyber’s iOS 14 supported test test app and return a bid response with required bidresponse.seatbid.bid.ext.skadn parameters
- Review Fyber’s new click flow that directly opens the iOS StoreKit with the bundle returned on the bid response via BidResponse.seatbid.bid.ext.skadn.itunesitem
- Continue with the install flow to receive an install notification from Apple at your designated endpoint. The conversion value and source app data likely will be unavailable unless the minimum threshold is met, according to Apple’s protocols.
Implementation
- Fyber compiles an open-source list of DSP SKAdNetwork IDs
- Fyber instructs all publishers to add our complete list of our integrated demand partners SKAdNetwork IDs to their Info.plist to enable attribution measurement
- Upon ad click, Fyber’s SDK calls loadProduct() with the DSP’s SKAdNetwork values and signature
Bid Request
If a DSP has at least one SKAdNetworkItem in the publisher app’s Info.plist, Fyber includes a new object in the bid request that provides the necessary information to create a signature. Object is only present if both the Fyber SDK version and the OS version (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" |
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"," |
Bid Response
If the bid request includes the BidRequest.imp.ext.skadn object, then a DSP is required to pass all of the following parameters using the below object on their bid response. If the object is present in the response, then Fyber 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 |
String | "campaign":"45" |
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==" |
Note
Step 2: Setup Contextual Data Signals
Other user and device identifiers are critical to maintaining granular targeting post-IDFA. Please visit our Contextual App Targeting page for more details.
FAQs
Yes. In this case, Skadnetids are passed as null.