read whyRequest A Demo
Thank you! Your submission has been received!
Something went wrong while submitting the form
Ad ExchangesOptimization
June 22, 2016

Google’s Busted Auctions

A busted auction occurs when an auction has no bidders, or worse, when there’s only one bidder. Auctions use other buyers to establish price pressure, and if there aren’t other buyers in the auction

Chris Cummings

A busted auction occurs when an auction has no bidders, or worse, when there’s only one bidder. Auctions use other buyers to establish price pressure, and if there aren’t other buyers in the auction, the price plummets. Google’s Ad Exchange--as the world’s biggest marketplace for ad impressions--has lots of buyers, suggesting an auction for an ad impression would bust rarely, if ever. But bid data in AdX indicates otherwise. Busted auctions on AdX may not be the exception; they may be the norm.

The Mysterious Gap

The evidence that something is amiss in the Google auctions emerged a few weeks ago while analyzing bid data to optimize price floors in AdX. The gap between the Winning Bid CPM--the price the highest bidder was willing to pay--and the Close CPM--the close price for the auction, which amounts to one penny higher than the second place bid--was enormous. On average, our Close CPM was discounted by 70% off the Winning Bid. Put differently, if the highest bidder was willing to pay $3.00, we’d end up selling the impression $0.90.

How is that possible? In an auction, why would the second place bidder submit a price so much lower than the winning bid? And why would would it happen so consistently? That difference wasn’t for a sliver of impressions; it was the average for all impressions.

The Stock Market Myth

Google once explained the DoubleClick Ad Exchange by using the analogy of the New York Stock Exchange. The exchange brings buyers and sellers together in a marketplace. And the marketplace is huge. The DoubleClick Ad Exchange includes thousands of buyers, many of which are agencies or ad networks who themselves represent thousands of advertisers. Add to this demand pool the advertisers from AdWords, which has literally millions of advertisers, and the result is the biggest marketplace of ad buyers on the Internet. The market is so big it’s almost difficult to wrap your mind around it.

But something doesn’t quite add up with the stock market analogy. On the New York Stock Exchange, stocks have a market price that is pretty well agreed upon. In fact, for highly traded stocks, the difference between the best bid to buy and the best offer to sell can be as little as a penny. This “bid/ask spread” is actually the key metric that the NYSE uses to market itself as delivering the best prices to traders throughout the day. The narrow spread--generally the difference of only a fraction of a percent--suggests a strong market consensus on the price of the stock.

By contrast, the market price for an ad impression in AdX, on average, has a 70% difference between the Winning Bid CPM and the Close CPM. The price for an impression has virtually no consensus. With thousands of buyers, how could this be? We started to ask ourselves: is there even an active market?

A Huge Party Where No One is Dancing

With the vast number of buyers on AdX, we always assumed that the number of bidders on any given ad impression was robust. Probably not in the thousands, but maybe in the hundreds? At the very least, a couple of dozen?

According to our AdX account, there are only, on average, six bids per impression. Not hundreds, or dozens, or even double digits. Just six. And it turns out, most of those bids come from bidders scavenging for ultra-discounted inventory. We segmented the bidders by bid range, and two of every six bidders were bidding less than $0.10. Even more surprising, if we cut out bidders below a $1.00 CPM, we had on average, a half of a bidder in each auction.

Calculating Bids Per Impression

Because AdX doesn’t disclose all the bid data in the auction, the methodology to calculate these numbers needs elaboration. In our account, we have approximately 600 active buyer networks. Of these, just over 100 have opted-out of sharing their bid data, which we found by clicking on the link in AdX after running a bid report:

AdX makes transparent the total revenue and total impressions for the account, and the total revenue and total impressions for the bidders that share their data. In our case, the shared bid data represented about 30% of the total impressions and revenue. Accordingly, we multiplied the number of bids available in our account by a factor just over three, making the assumption that the number of bids excluded from the data was proportional to the total revenue and total impressions excluded from the data. If this assumption holds true, the numbers above should be accurate.

Two factors make us comfortable using this assumption to extrapolate based on the data we have. First, for the 30% of the data that we have access to, the Close CPM should reflect 100% of the buyer activity--otherwise it wouldn’t be accurate. So while the Winning bids are only shared for 30% of the buyers, the Close CPM should reflect the participation of 100% of the buyers. Second, we checked the CPM for the impressions where we have data and compared it to the CPM for the impressions where we don’t have data. The CPMs were similar, with the CPMs where we have data were registering ~10% higher than the overall average, suggesting to us that these auctions with data are comparable to the average auction.

Rethinking The Second Price “Auction”

The data above may cause some publishers to rethink the meaning of the second price “auction”. Auctions only work when there are multiple active buyers competing with each other. These auctions appear to be severely bifurcated. At the bottom, a handful of bidders are peddling in penny auctions. At the top, the occasional bidder submits a bid above $1. The problem here is that the second price auction mechanic knocks the otherwise high bidder back down to price set by the bottom feeders. This lack of auction pressure is far more potent than one might think. In fact, it explains how there exists, on average, a 70% gap between the Winning Bid and the Close CPM. The winning bidder is bidding alone at the top. The auction is essentially busted.

Adding Pressure to the Auction

For any publisher, like us, where there exists a large gap between the Winning Bid and the Close CPM, the second price auction is almost certainly bad for publishers. Up to 70% of the potential value of the winning bids is undercut by the effect of second price auction. Short of changing the auction mechanics, what options exist to close the gap? Price floors and header bidders.

Setting price floors adds a competitor to the high end of the auction. The bottom feeders are wiped out, and the gap between the Winning Bid and Close CPM shrinks. The problem is that when the high-end bidders don’t show up, the auction has no bidders. One strategy to mitigate the loss of the low-end bidders is to set price floors for each bidder. We’ve found that certain bidders buy only premium inventory and others traffic in cut-rate inventory. Applying the price floors only on the high end bidders may ensure that the auction results in at least one bid, while closing the gap between the Winning Bid and the Close CPM for the premium bidders.

The second avenue to add pressure to the auction is to increase the number of premium bidders. Our push to optimize our ad stack using header bidders has substantially increased the number of bids coming in at the high end. Adding five or six header bidders that bid on every impression can literally double the number of active bidders in the auction. Of course, not all bids are created equally, and the biggest value comes from adding additional premium bidders to the mix.

Replicating the Analysis on Your Site

For anyone interested in replicating this analysis on their own website, here are steps:

  • Determine a fixed time period that you want to analyze. All the reports run below should match that time period.
  • Run a report in DFP using the Dynamic Allocation Opportunities metrics. The total “Impressions competing” variable represents the number of auctions held.
  • Now over in the AdX query tool, select My queries > New query, and then run a report that includes Ad impressions, Ad requests, Coverage, eCPM, and Estimated revenue. You can use the report dimension of “Sites”, and be sure to match the date range with the DFP report above. The “Ad impressions” and “Estimated revenue” variables represent the total impressions and total revenue for the account.
  • For the bid data, use the AdX query tool to run another query using the same date range. This time swap in the “Bid ranges (gross)”) dimension. Remove all the metrics above and include all the metrics under the “Bid metrics” section. The sum of “Impressions won” represents all the impressions that have bid data available. Multiply the “Close CPM” by “Impressions won” for each row and sum the results to calculate all the revenue that has bid data available. You can compare these sums to the total impressions and total revenue found in the earlier report. What percentage of impressions and revenue does your bid data represent?
  • To calculate the bidders per auction, using the same report, first sum the total from the “Bids” column. Then divide this sum by percentage of bid data that’s present in your account which you found above to estimate the total bids across your whole account. You can then divide the total bids by the total “Impressions competing” found in the DFP report above. That’s your average bids per impression.
  • To exclude the bottom-of-the-barrel bidders, just remove them from the total bids calculated above at whatever price point you wish, and then re-calculate the bids per impression.
  • Finally, compare the gap between the Winning Bid revenue and the Close CPM revenue, by multiplying the Winning bid by the Impressions won for each column and summing the total. Compare that to the revenue calculated above when using the Close CPM. How big is the gap on your site?

We have shared the data and analysis on our site to start a discussion about the auction dynamics in the industry. We only have access to our account, so we can’t rule out that what we see is idiosyncratic to our experience. If you have looked at this data in your account and found something different--or if you’ve seen similar results--please share your experience in the comments below.

Closing Thoughts

Publishers that use programmatic ads are now in the auction business. Industry wide, these auctions have largely been a black box. Credit must be given to Google for making at least a portion of the market bid data available. This data is more transparent than almost every other marketplace. But we can do better. With the importance of auctions only growing, it’s time to demand more transparency, better understand the rules of the game, and work to structure them as fairly as possible. As publishers, we should start to ask to see more data on the bids for each impressions from all our ad partners. The auction data holds the key to better pricing for our programmatic ad inventory.

Follow PubNation Blog

A/B Testing Advertising: A Playbook for Publishers

Six months ago we launched an A/B testing framework for our site,, that has allowed us to make ad ops decisions smarter, faster, and with measurable improvements to revenue. Our fir...

Header Bidder Optimization: When Ads Compete, You Win

In the past two months, we've radically overhauled our programmatic advertising stack on, shifting our focus to header bidding advertisers--advertisers that submit the price they wi...