Handling Click Events in iOS

This article provides a summary of how DT handles click event logic for video and display ads as of iOS 14 and Custom Product Pages as of iOS 15. Demand Partner feedback is highly encouraged. If you have any questions or recommendations, contact your DT Account Manager.

Tracking Click Events with the SKAdNetwork

When a Demand Partner returns the BidResponse.seatbid.bid.ext.skadn object with a valid itunesitem attribute from a click, DT uses the iOS StoreKit controller to display the App's App Store product page. For more information about the specifications for the BidResponse.seatbid.bid.ext.skadn object, see the DT Exchange Open RTB Specifications.

In parallel, the DT SDK iterates on the click redirect until it reaches a URL that leads to the App Store or is a non-redirect URL such as a browser link. The device user is not aware of any of the redirects, and only sees the iOS StoreKit app content while the redirects occur in the background.

Tracking Click Events for VAST Video

DT uses the following VAST elements to track clicks:

  • VAST Videos
    • <ClickThrough>
    • <ClickTracking>
  • VAST CompanionAds including static, iFrame, and HTML end cards:
    • <CompanionClickThrough>
    • <CompanionClickTracking> (starting with VAST 3.0)

Tracking Click Events for Display Ads

Display Ad creatives may use various methods to send a click event to the DT SDK:

  • For MRAID creatives, call mraid.open().
  • For Javascript creatives, call window.open() and update window.location.
  • For HTML creatives, use a hyperlink such as <a href="https://someurl"></a>

The following diagram shows how DT handles a click event from an MRAID Display Ad. DT uses the same flow for handling all Display Ad click events.

91ba256-Display_Ad_Flowchart.png

Handling Custom Product Pages

The DT Exchange SDK version 8.1.5 or higher supports Apple's Custom Product Pages (CPP), a feature available as of iOS 15. CPP allows app developers to create up to 35 versions of each App Store product page to emphasize different features or content within their application. Each Custom Product Page has its own unique Product Page ID (PPID) that you can append to the unique URL for the app in the App Store.

The following sample App Store URL shows an appended PPID for a specific CPP:

https://apps.apple.com/us/app/my-fun-game/id12345678?ppid=45812c9b-c296-43d3-c6a0-c5a02f74bf6e

To leverage CPP as a DT demand partner, pass back the entire App Store URL with appended PPID. When received in the bid response, for example in bid.ext.skadn.productpageid, the DT SDK parses the click URL and uses the PPID along with the StoreKit controller to display the specific CPP instead of the the app's default App Store page.

Future Enhancements to Click Handling

To further support SKAdNetwork click handling, Digital Turbine suggests a new bid response extension for more clean and efficient click handling. DT is working closely with the IAB SKAdNetwork Working Group to collect DSP feedback on the following proposed bid response specifications.

Suggested bid response extension:
BidResponse.seatbid.bid.ext.link

Attribute Required Description
url Yes Landing URL of the clickable link. For SDKAdNetwork, should be omitted.

Example:
appname://path/to/location

urlfb No Fallback URL for deep link to be used if the URL specified in url is not supported by the device.

Example:
https://www.appwebsite.com/

trkr Yes List of third-party tracker URLs to be fired on click.

Example:
"trkr": ["https://clickurl.dsp.com/sessionid", "https://clickurl.std.com/sessionid"]

ext.deeplink No A boolean value indicating when a deep link is used.

0 = Deep link not provided
1 = Deep link is provided

Note

DT is currently gathering feedback from Demand Partners regarding this suggested response specifications. If you have any questions or recommendations about these specifications, contact your DT Account Manager.

Back to Top ⇧