Programmatic Mediation Sequence of Events
On app start, the DT SDK initializes your SDK.
When the publisher requests an ad, the DT SDK does not check the network’s SDK for a fill directly. Instead, the DT SDK sends an auction request to the DT Exchange.
DT Exchange runs its RTB auction, sending an OpenRTB request to the network’s bidder endpoint. At the same time, DT Exchange checks the prices for the traditional mediation and other buyers that do not compete in the RTB auction (more details can be found here).
In this bid request, along with the standard OpenRTB parameters, DT Exchange passes the ad network its own custom identifiers to help it identify exactly which of the App and Placement IDs this request is related to.
These are the same identifiers that a publisher would use to initialize and request ads directly from the network’s SDK in a traditional mediation setup.
- If there’s no fill available at that time, please respond with no-bid
- If you do have fill available, you must respond within 300 Milliseconds to ensure your bid is eligible for the auction
- Your bid response must include the following:
- Bid id
- Bid price (in USD)
- ‘nurl’ (win notification URL)
- ‘burl’ (Billing notification URL)
- Ad creative metadata: creative ID, adomain, creative size (if relevant), adm*.
- If you win the auction:
- DT Exchange fires a win notification along with the clear price to your ‘nurl’
- DT Exchange passes the adm, bid id, creative id, and burl to the DT SDK
- When the DT SDK receives the response, it can optionally pass the aforementioned parameters to your SDK as needed. At this time, your SDK should complete the caching/downloading of any related creative. Your creative should become available for display within 2 seconds after this point
- When the publisher attempts to show an ad, the DT SDK calls the show method of your SDK. Render your creative to the screen at this time. Digital Turbine also fires the burl at this time. Any creatives that fail to show are billed.
- The ad markup (‘adm’) field is handed over to your SDK. Therefore, you can pass standard ad markup in the adm field, or any custom identifier that your SDK may require to locate the relevant creative.