Ad Waterfalls, or daisy chains, are an optimisation method used to try to maximise the revenue generated from a set-up that uses multiple demand partners. Although largely now replaced by more efficient strategies such as header bidding, waterfalling can still be useful in situations where a non header bidding partner offers high CPMs at limited fill.
This article was originally posted in July 2018 and updated in April 2019
Why waterfall ads?
Waterfalling gives increases the publisher’s chance of selling impressions to the highest performing partner. The simplest example would be a publisher who has a 100% fill solution (such as AdSense), but gets offered a high premium campaign that pays a higher rate, but only for their pick of impressions . The publisher wants to give the premium campaign the chance to buy every impression, but still wants to ensure that ads are served for the requests that the premium campaign doesn’t fill.
The simple solution to this is a pass-back tag. The premium ads are configured to call an AdSense tag whenever they see a request that they can’t fill at the agreed price. This would look like this:
In this example the black bar represents all ad requests. The premium campaign fills a proportion of them (green) at a high CPM then passes the remainder (Orange) back to the remnant network to fill. The idea is to give the premium campaign a look at every ad request so that it can serve as many impressions as possible at the higher rate.
Do waterfalls make more money?
We’ll go on to demonstrate why waterfalls aren’t an ideal set-up, but they do at least offer a way to optimise yield from multiple demand sources. For much of the history of ad operations, waterfalls were the primary tactic of yield optimisation so they are not without advantage.
By putting some values to the to the example above the value becomes clear:
- The premium campaign fills 20% of impressions at an $8.00 CPM
- The remnant campaign fills 100% of impressions at a $1.50 CPM
- 1,000,000 ad requests are made
Without a waterfall we can give either campaign all of the impressions. Here is how the revenue compares from those options with the waterfall /daisy chain approach:
Option 1 : Remnant campaign only The remnant ads receive 1,000,000 requests and serve an impression every time (100% fill). At $1.50 CPM this yields a total revenue of $1500
Option 2 : Premium campaign only Premium receives 1,000,000 requests and serves 200,000 impressions (20% fill). At $8 CPM the yields a total revenue of $1600. Only a slight improvement over the remnant campaign (We’ve explained this situations here: When does a $2 CPM beat a $4 CPM?)
Option 3 : Waterfall from Premium to Remnant campaigns Premium still received 1,000,000 and serves 20% of these to yield the same $1600. However this time the remaining 800,000 requests are filled by the remnant campaign at $1.50 CPM generating an additional $1200. Total revenue for the same 1,000,000 impressions is $2800, a significant improvement.
The problem with ad waterfalls
Waterfalls / daisy chains are better than not optimising ad demand, but there are limitations with the approach. Key amongst these are:
Problem 1 : Passbacks lose impressions
Ad servers and ad networks are not perfect and there are any number of reasons why a passback might not result in an impression. Either the parent of child tag might be slow to play their part, there could be a network delay and if an ad server is in use that could potentially slow things down further. Extra latency at any stage can lose potential impressions and the truth is that this is exactly what happens at every step. The more partners there are in the daisychain, the more impressions you will lose.
Adding another partner into the example and show the effect of the passback process shows where these impressions get dropped. How big those losses are will depend on the partners involved.
Problem 2 : Publishers don’t always know the CPM until after the ad is served
Possibly the biggest issue with waterfalls is that publishers will often want to traffic ads where the CPM is not fixed. When working with networks the CPMs are usually set dynamically. The solution to dealing with this issue in waterfalls is to use historic averages. We discuss this approach and how to minimise inaccuracies in “Three bad ways to set CPM rates in DFP (and one good one)“. Whilst you can improve your methods of estimating, historic averages are by definition always out of date.
Actual CPMs vary wildly from one impression to the next. Trafficking based on historic averages almost guarantees that there are instances where a high bid could have been made by a partner who was too far down the chain to get a chance to make that bid. (This is the exact situation that Header Bidding was developed to address).
Problem 3 : Waterfalls are time consuming to maintain
Each step in the waterfall needs to be monitored and revalued. If rates change or impression discrepancy fluctuates the value of that partner will change and the trafficking should reflect that. If those changes result in a partner no longer justifying their position in the chain (or deserving a better one) then it can be far from simple to reconfigure the entire chain.
More efficient approaches
The long reign of ad waterfalls as the king of yield optimisation methods has definitely now passed. Header bidding and server to server bidding solutions like Exchange Bidding now offer greater efficiency. Waterfalls are not yet dead though. Whilst there are fixed CPM campaigns to be trafficked waterfalls will continue to be a viable option in the right situation.