The aim of this series of articles is to look closer at each business in the programmatic advertising ecosystem and try to understand the challenges, and technical and mathematical problems they have to solve. In this article we will focus on the supply side: the publisher and the SSP (supply side platform).
The publisher’s business model aims to attract as many users as possible. It is done through posting engaging content and then selling those users to the advertisers by showing the ads — this brings the largest revenue.
The publisher’s revenue comes from selling advertising placements. So, the publisher's goal is to sell as much ad inventory as possible for as high a price as possible in the most predictable manner.
One way to increase publisher revenue is waterfall optimization. A publisher connects to multiple SSPs and makes a decision upon each request — if it should be sent to one SSP, or multiple SSPs in parallel, sequentially, or even repeatedly — to maximize the bids that come from the DSPs.
Complicated business rules might apply to possible combinations.
Consider this example:
A solution to this problem on the publisher side would be to first ask SSP B for its bid, then use machine learning to predict how much SSP A would pay for this opportunity, and, if the expected SSP A payout is higher—send the request to SSP A, otherwise show the ad from SSP B.
To increase revenue, “bid floors” or “reserve prices” optimization is used. When starting the auction, the publisher can announce the minimum possible bid price (say, $0.02)— this is called a “reserve price” or a “bid floor”.
Setting higher reserve prices will make DSPs bids higher, but less frequent. The publisher can use ML to model the probability of bid amounts and frequencies depending on the reserve price and set the optimal floor for each auction.
bid_floor = argmax [ p_bid( floor ) * avg_price( floor ) ]
To make revenue more predictable for the publisher, special deals with the ad buyers can be arranged.
For example: the publisher might promise to some advertiser (say, Mercedes Benz) that it will show 600 million car ads in the next 6 months for $2 per 1000 ad views and charge money for it in advance. For this kind of deal, the publisher can use machine learning models to forecast traffic distribution and prices for the next 6 months. This can help determine if it can actually deliver the promised views, and how much revenue it could make from the same traffic without such a deal. This task requires complex mathematical modeling.
Finally, some publishers, like blog platforms, must make sure that ads are not shown next to questionable content. This includes nudity, radical political opinions, etc. We will call this problem “brand safety”.
A variety of ML-based text and image analysis solutions can detect unsafe content and not serve the ads next to it. This comes as a technical challenge, as scoring the page must take minimal wall time, and CPU processing costs must be lower than the potential revenue the publisher can make from showing the ads on the page.
The main business model for an SSP is to generate maximum revenue for the publishers. It is done through connecting to more potential buyers (i.e., more DSPs) and optimizing the processes to increase auction prices and make buyers pay more.
SSP’s income comes from charging publishers and/or auction participants a small fraction of the revenue.
A lot of optimization techniques on the SSP side revolve around the design of the auctions — this research area is called “mechanism design”. By changing the requirements to win the ad auction and the rules to compute the final price, SSPs may dramatically shift the balance of the auctions, prices, and volumes of ads being shown.
For example, some time ago most SSPs were running second-price auctions: the winner is the one who bids the most, but the price they have to pay is the price of the second-highest bid. Note that in the second-price auction, the price does not depend on the winner’s bid as long as the winner bids the most. This type of auction makes life easier for bidders — they can bid their true value (expected revenue, as we have seen in the formula in the previous article) and make sure they will be charged the minimum possible price. This will ensure a positive margin.
However, in second-price auctions, there is always a gap between the winner’s bid and the second-highest price - the money that DSP will consider saved and that SSP will consider lost. At some point, most SSPs started charging the first price, making the winners pay what they bid. Now, the winner’s price for the same ad will get higher and higher as they bid higher.
In the short term, this change has indeed led to price and revenue growth. But in the long run, this incentivizes DSPs to build sophisticated solutions to help lower their auction bids — and this is bringing the prices down again.
Another way of SSP-side optimizing is duplicating bid requests again and again, and then running a unified auction for all replies. Most DSPs only reply to a fraction of bid requests because of limited CPU and network capacity — so duplicating the request will allow the SSP to collect more replies from bidders and increase the auction price.
This solution, once implemented by one of the SSPs, urges other SSPs to adopt it as well. Otherwise, they will be lost in the increasing volume of bid duplicates coming from the first SSP. This, in turn, encourages DSPs to invest in early deduplication techniques that help drop duplicate requests or cache replies to similar requests without spending multiple cycles of heavy CPU computation on the same auction.
Most supply-side tactics are not aimed at adding value to the ecosystem (user-generated purchases after seeing an ad). Rather, they fuel the arms race with other companies. Duplicating requests, optimizing reserve prices, and playing first-price auctions are the techniques that drive DSPs to invest more in countermeasures such as bid deduplication, bid caching, and bid shading. In the long run, they are bringing the price equilibrium to approximately the same point.
On the other hand, brand safety solutions do create value. Instead of serving ads only on a small list of manually checked explicitly allowlisted pages, the blog platform may score all content automatically and show ads on all pages except the small blocklist, thus increasing the ad inventory and bringing more value.
However, brand safety is a complex issue from the machine learning perspective. The dataset is usually very skewed and there aren’t enough examples of unsafe text or images. This makes it hard to train the models and evaluate their quality. But the price of error may be very high— if a small number of ads get shown next to inappropriate content, the publisher may be disconnected from big SSPs and lose a large part of revenue. We will discuss this in more detail in one of the following articles.
Making deals with advertisers also creates additional value, as it makes the situation more predictable for both the publisher and the advertiser. However, forecasting the traffic is difficult and risky, and it is difficult to correct the forecasting mistakes.
In the next article, we will talk about problems arising for demand-side players, mainly the DSP. DSP’s bidder is the most complicated piece of technology in the programmatic advertising ecosystem and the main source of additional value. That’s why I will dedicate most of the later articles to describing various problems and solutions related to the DSPs.