BidSheet for SKAdNetwork

Campaign Management Requirements

SKAdNetwork allows advertisers to measure the performance of their app install campaigns using a privacy-safe attribution framework designed by Apple and included in the iOS Operating system. To work with SKAdNetwork, advertisers must meet the following requirements:

  • We will require advertisers to set up one campaign per iOS App. Any advertisers running more than one campaign per iOS app will be asked to consolidate these campaigns into a single campaign.
  • There will be a limit of one (1) SKAdNetwork ad group per iOS App campaign*. Advertisers may set up other non-SKAdNetwork Ad groups, but these ad groups will not be eligible for SKAdNetwork attribution.
    • *Should you choose to run non-SKAdNetwork campaigns, you may run more than one ad group, including up to one SKAdNetwork campaign.
  • Advertisers must call RegisterAppForAdNetworkAttribution(), and this must be confirmed by AdColony. Once verified, advertisers will be able to create and edit SKAdNetwork ad groups.
  • SKAdNetwork campaigns must be managed through AdColony BidSheet™.

Pricing

Advertisers using up on BidSheet™ for SKAdNetwork are charged for each impression and our CORE™ algorithms work towards the target CPI (tCPI) set in BidSheet™. Learning phases of a campaign or testing new creatives may result in inflated costs, and the effective CPI (eCPI) will optimize towards the target CPI as our CORE algorithm optimizes campaign delivery.

AdColony does not offer CPI pricing on BidSheet™ for SKAdNetwork.

BidSheet™ and SKAdNetwork Campaign IDs

SKAdNetwork postbacks contain a campaign ID that allows advertisers to measure the performance of their app install campaigns. To protect user privacy, Apple requires SKAdNetwork Campaign IDs to be an integer between 1 and 100.

Advertisers can set up SKAdNetwork campaigns using BidSheet™. Bidsheet™ makes campaign management easy by automatically assigning SKAdNetwork Campaign IDs to each targeting rule you create:

Bidsheet targeting rules example

When an install occurs, AdColony will receive a postback with the SKAdNetwork campaign ID associated with the targeting rule you created. In this example, the install came from the targeting rule associated with campaign ID 2.

{ "version" : "2.0", "ad-network-id" : "com.example", "campaign-id" : 2, "transaction-id" : "6aafb7a5-0170-41b5-bbe4-fe71dedf1e28", "app-id" : 525463029, "attribution-signature": "MDYCGQCsQ4y8d4BlYU9b8Qb9BPWPi+ixk\/OiRysCGQDZZ8fpJnuqs9my8iSQVbJO\/oU1AXUROYU=" "redownload": 1, "source-app-id": "conversion-value: }

Advertisers may set targeting rules using SKAdNetwork campaign IDs 1-11. Advertisers may create up to 11 distinct targeting rules per app bundle ID using these campaign IDs. Advertisers may also create up to 11 distinct rules that do not target any specific app.

For example:

You may target one app and set up to 11 different country/bid combinations for that app. Multiple countries with the same bid will be combined under a single SKAdNetwork campaign ID
You may target an unlimited number of distinct apps, but each app may only have up to 11 distinct targeting rules.
You may target up to 11 different country tiers without targeting a specific app and also set bids for specific apps within those country tiers.

A full list of targeting options available on BidSheet™ can be found here.

Attribution when below the Privacy Threshold

To protect user privacy, Apple will only provide source-app-id and (app bundle ID) and conversion-value in the SKAdNetwork postback when a privacy threshold has been reached.

{  "version" : "2.0",  "ad-network-id" : "com.example",  "campaign-id" : 2,  "transaction-id" : "6aafb7a5-0170-41b5-bbe4-fe71dedf1e28",  "app-id" : 525463029,  "attribution-signature" : "MDYCGQCsQ4y8d4BlYU9b8Qb9BPWPi+ixk\/OiRysCGQDZZ8fpJnuqs9my8iSQVbJO\/oU1AXUROYU="  "redownload": 1,  "source-app-id":            "conversion-value:  }

It is possible for more than one BidSheet™ to contain multiple rules for different apps with the same campaign ID. In this scenario, AdColony will infer which source-app-id delivered the install, based on historical campaign delivery data.

Postback Forwarding

AdColony supports automatic postback forwarding via POST API to our officially supported MMP Partners (Adjust, Appsflyer, Branch, Kochava, and Singular). Postbacks may also be forwarded directly to advertisers via POST API. Advertisers can contact their account managers to enable this. More information on postback forwarding can be found here.

Campaign ID Mapping

AdColony will sent postbacks containing SKAdNetwork campaign IDs that do not match campaign ID configurations on BidSheet.

 

Frequently Asked Questions

What is BidSheet™ and why do I have to use it for SKAdNetwork traffic?

My MMP plans on offering an attribution solution that does not utilize SKAdNetwork, do I still need to use BidSheet™?

What about Opted-In iOS and Android traffic, is BidSheet™ required as well?

What payment models are available with BidSheet™?

What targeting is available with BidSheet™ for SKAdNetwork?

What Optimizations can be made against SKAdNetwork traffic?

Who can receive SKAdNetwork postbacks?

Will Campaign naming conventions be available in SKAdNetwork BidSheet™?

What do I need to do to be prepared for iOS 14 Opted-Out SKAdNetwork traffic?

 

What is BidSheet™ and why do I have to use it for SKAdNetwork traffic?

BidSheet is a spreadsheet-style campaign management system that is compatible with a bulk csv bid manager. 

In order to continue driving app growth for iOS within Apple’s SKAdNetwork limitations (100 campaign ID limitation per source app), we’ve designed BidSheet to fully support SKAdNetwork and make upload, management, and reporting as seamless as possible. BidSheet will ensure SKAdNetwork campaign IDs are allocated properly to targeting strategies and Buyers will be able to track performance properly.

For non-SKAdNetwork campaigns, BidSheet’s toolset will enable greater efficiency for campaign management, and coming soon write API support will allow for automated bid management and great self-serve functionality for AdColony’s buying partners.

 

My MMP plans on offering an attribution solution that does not utilize SKAdNetwork, do I still need to use BidSheet™?

BidSheet will be required for advertisers who are using Appsflyer Advanced Privacy. Other MMP-based tracking solutions are supported on both Legacy ad groups and BidSheet.

In all cases, AdColony recommends moving setting up BidSheet Ad Groups so that advertisers can continue to advertise without interruption in the event Apple decides your MMP’s solution is not acceptable. 

 

What about Opted-In iOS and Android traffic, is BidSheet™ required as well?

No, BidSheet is not required for Android and opted in iOS traffic. AdColony still recommends moving to BidSheet campaign management due to the self-serve functionality it can provide buying partners. 

 

What payment models are available with BidSheet™?

CPI, CPM, and CPCV payment models will be available.

 

What targeting is available with BidSheet™ for SKAdNetwork?

The same targeting currently available in the AdColony portal will be made available in BidSheet for SKAdNetwork. Please click here for a full list

 

What Optimizations can be made against SKAdNetwork traffic?

ROAS optimization will need to be revisited due to SKAdNetwork attributions not including data points required to calculate ROAS. AdColony is actively working with partners on standardized ConversionValue solutions to allow for CPA KPIs to accurately track ad spend effectiveness.

 

Who can receive SKAdNetwork postbacks?

Both a buyer and a buyer’s MMP are can receive for receiving Postbacks from SKAdNetwork.

 

Will Campaign naming conventions be available in SKAdNetwork BidSheet™?

Unfortunately only Campaign ID will be able to map targeting strategy to attributions with SKAdNetwork traffic being managed via BidSheet. The BidSheet reporting API will provide Campaign ID along with targeting parameters that are associated with a Campaign ID. Additionally AdColony is exploring adding targeting parameters to forwarded SKAN postbacks. 

 

What do I need to do to be prepared for iOS 14 Opted-Out SKAdNetwork traffic?

Currently there are 5 things needed to be completed to be ready for SKAdNetwork Traffic. Well.. really 4 things needed, we highly suggest you try out #5

    1. Get ready to receive SKAdNetwork Postbacks
    2. Restructure your campaigns to work with SKAdNetwork
    3. Call RegisterAppForAdNetworkAttribution() to kick off the SKAN attribution process
    4. Design Conversion-Value for passing PIE events back to AdColony (optional)
    5. Try out tCPI

Step 1 — Get ready to receive SKAdNetwork Postbacks

Apple sends SKAdNetwork postbacks directly to ad networks. AdColony will forward SKAdNetwork postbacks to advertisers and to supported attribution/MMP partners. Advertisers must support receiving postbacks from AdColony. Alternatively, we suggest contacting your MMP partner to find out if they can receive SKAdNetwork postbacks on your behalf. 

Step 2 — Restructure your campaigns to work with SKAdNetwork

Campaign ID can be an integer between 1 and 100 (inclusive). This means that advertisers can only target apps up to 100 different ways in your campaign.

AdColony’s BidSheet™ campaign management tool will automatically assign campaign ID values. AdColony strongly encourages advertisers to register for this BidSheet beta by emailing BidSheet@adcolony.com.

Step 3 — Register AppForAdNetworkAttribution()

In order to attribute the install, the advertised app needs to call RegisterAppForAdNetworkAttribiton() in order for AdColony to receive install postbacks and to measure installs.

ConversionValue()is used by advertisers to optionally pass post-install events (PIE) to Ad Networks in the SKAdNetwork postback. Advertisers should notify the ad network of what each ConversionValue() integer corresponds to.

Step 4 — Design your Conversion-Value Mappings

Advertisers who work with AdColony on a ROAS basis should implement a design for Conversion Values. Once you call RegisterAppforAdNetworkAttribution() a 24-hour timer starts. During this 24-hour timer, the timer initiated by RegisterAppforAdNetworkAttribution()can be reset by calling updateConversionValue(), which is used for passing PIE events.