SKAdNetwork Attribution Initiation Guidelines

Apple's SKAdNetwork API aims to measure the success of ad campaigns while maintaining user privacy. For SKAdNetwork v2.0 and v2.1, install attribution for StoreKit-rendered ads is driven by clicks on the ad that would lead to the user installing the app. SKAdNetwork v2.2 additionally adds support for view-through ads where attribution is driven by just viewing the ad.

The following guidelines are provided to ensure that the Google Mobile Ads SDK can initiate SKAdNetwork attribution correctly.

On-click attribution

Background

By default, SKAdNetwork attribution will only be initiated by the Google Mobile Ads SDK ad click event if the click action specifically lands in the Apple App Store. The reason for this requirement is to prevent the app store from being launched by clicks that are not meant to open the app store. These types of click actions could include, for example, navigating to an Ad Choices page.

Guidelines

To guarantee that click actions on ads and subsequent app installs would result in a SKAdNetwork attribution, when building the creatives, make sure that the creative's click-through URL is either

  • a direct link to the advertised app in the app store, or,
  • uses redirect methods, such as HTTP 301, 302, or other types of server-side HTTP redirect chains that would have a final destination of the app store.

Links to the app store either directly or through a redirect chain will be determined if the URL begins with any of the following patterns:

  • https://apps.apple.com
  • https://itunes.apple.com
  • itms-apps://
  • itms://

Any other landing pages or using any other client-side redirect methods will not be detected as landing in the app store and might not initiate the SKAdNetwork attribution process. Examples:

  • HTML page that requires user action to redirect to the app store
  • HTML page that has an automated JavaScript-based redirect script to the app store
  • Meta refresh tags

Best practices for different creative types

The click action to initiate SKAdNetwork attribution can be set up for the different creative types as follows:

  • For HTML creatives, this can be set up as the destination URL on the anchor tags surrounding the clickable element, or as the target URL of window.location operations from JavaScript-based on-click events.
  • For MRAID, the click action will need to call Mraid.open() to initiate the SKAdNetwork attribution.
  • For VAST video, the app store URL or the starting element of the redirect chain can be set as the ClickThrough element in the VAST XML.
  • For Native, the app store URL or the starting element of the redirect chain can be set on the native_ad.click_link_url field for the Google RTB proto or the native.link field for OpenRTB proto.

Optionally always initiate SKAdNetwork attribution

The always_open_appstore flag on the bid response can be enabled to always launch the app store and initiate SKAdNetwork attribution for all ad clicks regardless of destination URL. This means for example clicking on Ad Choices icons will also launch the app store and initiate the SKAdNetwork attribution instead of showing the Ad Choices information.

The flag can be specified as part of BidResponse.ad.skadn.skadn_options object field in the Google Authorized Buyers protocol bid response:

ad {
  skadn {
    version: "2.0"
    ...

    skadn_options {
      always_open_appstore: true
    }
  }
}

Or as part of the BidResponse.seat_bid.bid.ext.skadn.skadn_opts object field in the OpenRTB protocol bid response:

"seatbid": [{
  "bid": [{
    "ext": {
      "skadn": {
        "version": "2.0"
        ...

        "skadn_opts": {
          "always_open_appstore": true
        }
      }
    }
  }]
}]

View-through attribution

Background

When SKAdNetwork v2.2 view-through attribution is supported, the SKAdNetwork API starts an impression timer once the ad is rendered and is viewed by the user. Attribution will only be allowed for ads that have been displayed for a minimum of 3 seconds (more info). Furthermore, the SKAdNetwork API only allows for 1 active impression timer at a time (more info). Because of this restriction, the Google Mobile Ads SDK will only initiate the view-through attribution for full screen interstitial mobile ads.

Guidelines

The bid request fields BidRequest.mobile.skadn.supported_fidelity_types for the Google RTB protocol and the BidRequest.imp.ext.skadn.fidelities for the OpenRTB protocol specifies which attribution fidelity types are supported by the bid request. These fields will include the VIEW_THROUGH_ADS fidelity type only if the bid request is for a full screen interstitial creative. Please ensure the bid response doesn't include VIEW_THROUGH_ADS fidelities if view-through attribution is not supported. Responding with VIEW_THROUGH_ADS fidelities if not supported will cause the bid to be filtered before the auction.