Header Bidding – Another Nail in the Second-Price Coffin

With the rise in popularity of header bidding as a mechanism for publishers looking to increase yield, AppNexus’ SVP of publisher strategy, Tom Shields, outlines his thoughts on this potential shift for the industry. 

Auction dynamics are not exactly cocktail party conversation (unless you are at an AppNexus Summit), but they are critically important to how economic systems like RTB advertising work. RTB has historically worked on a second-price auction model, explained clearly here. As RTB has matured, however, some of the assumptions behind the model have started to break down, and both buyers and sellers are seeing unexpected results. The rapid rise of header bidding is exacerbating some of these challenges.

Header bidding is the practice of soliciting bids before the primary ad server runs, then including them in the ad decisioning process. Header bidding is taking off because it allows a (somewhat crude) form of true competition between guaranteed and RTB demand, without bias toward any one demand source, and, thus, increases publisher yields significantly.

A simplistic example can show how header bidding gives unexpected results. Imagine that for a given impression bidder A is called from the header, and represents two marketers willing to pay USD$3 and USD$1 for that impression. Imagine also that the primary ad server has a local bid of USD$2 from its own exchange or a non-guaranteed standing order. Because it is called from the header, bidder A does not see the local bid. If all of these bids were in one-second price auction bidder A would win and the auction would clear at USD$2.01 – this is the expected outcome.

With header bidding, however, bidder A only returns one bid (or maybe even just an indication of interest level). Then, either the header javascript or the primary ad server compares that bid to the other bids received and awards the impression to the highest bidder. This means bidder A must choose to return either their the highest bid in the auction or the closing price following the auction. In most cases, bidder A returns their closing price (USD$1.01, assuming a second-price auction), and then loses to the local bid of USD$2, even though they would have been willing to pay as much as USD$3.

If instead bidder A returns their highest bid (USD$3), then we run into the second problem: header bidding provides no mechanism for passing back second price when the impression is awarded and the tag is called. This means bidder A is called to serve the impression, but when they run their own auction, they don’t have the USD$2 local bid, so they still close the auction at USD$1.01, even though it should have been USD$2.01.

In the first case, the buyer loses an impression they would have paid 50% more for, and in the second, the publisher loses half their revenue. Either way, header bidding does not produce the expected results for either the buyer or the seller.

Part of the challenge arises because publishers would like to enable more premium programmatic inventory (and increase yield) by allowing guaranteed and RTB to compete on the same level, but they are priced in fundamentally different ways. Publishers doing header bidding are allocating inventory across both RTB and guaranteed by comparing bids that come in with their local order CPMs – and in the case of dynamic allocation, pseudo bids for guaranteed lines – and choosing the highest bid. This is effectively a first-price auction.

Header bidding is just one type of multi-level auction that breaks the second-price paradigm, it also happens when a DSP aggregates bids before sending them on to an exchange. For example, when a DSP gets an opportunity to bid on an impression, they may represent marketers who bid USD$2 and USD$3 for that impression. For reasons of efficiency or integration, many DSPs will only send the USD$3 bid. If the exchange’s second highest bid is USD$1, then the auction will clear at USD$1.01, although it should have cleared at USD$2.01.

Since multi-level auctions favor the bidders, some sellers have started to implement features like soft floors and dynamic hard floors to tilt the balance back. These tactics effectively make second-price auctions look more like first-price auctions.

Some buyers have made the shift to first-price auctions already. Criteo and Amazon, for example, only buy for themselves, so when they provide a header bid, there is no second price auction happening afterwards. Many sophisticated bidders already don’t bid their true value because they don’t trust the second-price dynamics, and instead use custom algorithms or programmable bidders to vary their bids as if they were participating in a first-price auction.

The second-price auction isn’t dead yet, but it is reeling from some tough body blows. Cascading auctions – including header bidding and DSP bid aggregation – and flooring tactics are causing auction dynamics that are counter-intuitive, and eroding trust in the system. Any time an auction is run without complete transparency into the full bid landscape, the second-price auction breaks down. Interestingly, the first-price auction maintains integrity despite cascading auctions and flooring tactics.

We at AppNexus are doing significant research right now to understand the impact of this potential shift. While the buying and selling tactics may change, some market participants have demonstrated the first-price model can work, and may actually work better, because everyone gets results that match his or her expectations. Solving the conflict between the first-price auction in dynamic allocation and the second-price auction in RTB would help promote the growth of premium programmatic for many publishers and buyers. Ultimately, a more transparent and predictable auction dynamic benefits everyone.

Comments


  • This is solved for publishers. Smart Publishers are putting their header partners into race conditions for the bid and accepting via price priority in their ad server decisioning. That solves for all of this. The problem is legacy demand side technologies that can’t compete on speed or price. Good riddance.

  • Toby Dawson

    lots of errors around HB in this article

  • Yaniv Ben-Atia

    I think that the all point of header bidding is that it collects all the response and bids from the auction that was done on the header and then sends ALL of them to DFP.this is why there is a special setup in DFP (creative# * sizes*bid range) I didn’t understand that the header bidding script is taking decisions. So bids 1$ and 3$ will go to DFP Did I miss something?

  • Kjell Inge Vatshaug

    Thank you. I claimed the exact same thing in a summit with a lot of header bidding providers present. They all went bananas and told me I was wrong. All of them promised me a follow up phonecall in which they would prove me wrong. It has been 6 weeks now… Quite quiet…

    With background from Search and writing some pricing algorithms in Search myself (as part of building PPC-solutions) I see a lot of weaknesses in the bidding logic used today. Even first price bidding falls short of the simplicity of pricing algorithms within Search. The short version is that the pricing in Search embraces all aspects of the pricing in one shot. In Display, we have to look at ACTUAL prices post-campaign via as a minimum looking at inview-rates. Not even mentioning adfraud, adblocking++
    Recommend looking at some of the (very) simplified explanations of Google Adwords Bidding process of Val Harian on Youtube. It does not happen quite like that in real life, but the concept itself is mindblowing for anyone working with Display… (at least, it should be…)