RTB Auction
Every time a screen is about to fill a programmatic slot, the content management system that drives it sends CityScreen Context an ad request — a question about what to play; classic slots are controlled by the content management system directly and are covered elsewhere. This section describes what happens between that question and the answer.
This page is for the engineers who connect a content management system to the platform, and for the owner, admin and manager employees who configure what the platform sells on their behalf.
An ad request covers one face, at one moment, for one slot length. The platform decides afresh for every opportunity, and records the decision it made.
The loop
The call is synchronous. The content management system holds the connection open for the whole of the sequence above, including the win notice sent to the winning partner.
Step by step
-
The request arrives. The content management system posts an ad request naming the organization and the face, and carrying the moment of playout, the slot length and an audience estimate.
-
The caller is identified. The access token is looked up and resolved to an organization, which must itself be enabled. The organization named in the request path is then checked against that organization’s own synchronization settings, so the credential and the inventory identity have to agree. See Access tokens.
-
The clock is checked. The playout time in the request is compared with server time. A difference of three minutes or more in either direction ends the request with an error, which makes an unsynchronized player clock the first thing to suspect when a whole screen stops selling.
-
The context is assembled. The platform loads the face, the face’s settings, the commission that applies, and the price list covering that face — with the demand partners the price list admits. A face has its own price list where one is attached to it, and the organization’s default price list otherwise.
-
Floor prices are worked out. The audience figure supplied by the content management system is passed on as sent, unless the face carries a correction factor, in which case the corrected figure is used. A floor price is produced for each creative length the price list prices, and grossed up by the commission, so that the figure offered to a partner is the amount it would have to pay. See Floor prices.
-
Every admitted partner is asked, at the same time. An RTB price list in auction mode arranges its partners into priority groups and compares the bids that come back. A price list in waterfall mode takes the first usable answer instead of comparing. Either way the partners are asked concurrently, and an answer that does not arrive inside the per-partner budget is left out. See Timing budget.
-
A winner is chosen. Answers that carry no usable bid are discarded first — below the floor, zero, wrong creative length, creative that does not fit the face, campaign not targeted at this face. A programmatic guaranteed campaign that is inside its schedule and still has plays left in its allowance for the current hour takes the slot ahead of any bid. Otherwise the highest bid wins and is charged under the clearing rule — see How the winner is chosen.
-
The winner is notified before the content management system is. If the winning bid carried a win notice URL, the platform calls it with the price charged, and waits. When that call fails, the answer to the content management system is empty.
-
The decision is recorded. The platform records the face, the winning partner, the campaign and advertisement, the floor, the price charged and the platform’s commission on it. Delivery reporting, revenue and partner win and loss accounting are built on that record.
-
The answer goes back. The content management system receives the request identifier, the identifier of the advertisement to play, and the price. The advertisement is one the content management system already holds, because creatives reach it when they are approved, so the answer names which of them to play.
-
The outcome comes back. After the slot has run, the content management system reports success or failure against the request identifier. Only a confirmed play becomes billable. See Reporting.
What ends a request without an answer
Some of these produce an error, and some produce an empty but successful answer. The distinction matters to whoever writes the content management system’s error handling.
| Cause | Result | Where to look |
|---|---|---|
Unknown token, or the organization is switched off |
Error |
|
The organization in the path is not the one the token belongs to |
Error |
|
Player clock three minutes or more away from server time |
Error |
This page, step 3 |
The face is switched off |
Error |
|
No price list covers the face and the organization has no default price list |
Error |
|
The price list admits no active demand partner |
Error |
|
The commission resolves to zero or less |
Error |
|
No partner bid, or none bid above the floor |
Empty answer |
|
The winner could not be notified |
Empty answer |
This page, step 8 |