The same simulated stream of ad-impression requests is fed into two mobile ad-serving architectures at once, using identical network fill-probabilities and prices so the comparison is fair.
Waterfall (sequential):
for each network i in fixed priority order:
wait timeout T per hop
if random() < fill_i: WIN at price_i, stop
else: try network i+1
give up once Σ T exceeds the timeout budget
Unified auction (real-time bidding):
ask all networks at once, one round ≈ 150 ms
each network independently returns a bid or nothing
WIN = max(bids), or no fill if nobody bids
Two effects fall straight out of the mechanics: a waterfall pays a timeout tax — every hop that doesn't fill still burns latency, so lower-priced networks lower in the chain are reached less often, capping the effective eCPM near the top network's price. A unified auction lets a network that happens to value this specific impression highly win even if its historical average price is lower, so its effective eCPM is the expectation of the maximum of all bids, not just the first one that answers — and it only ever costs one round of latency, regardless of how many networks are wired up. This is the real economic argument behind the industry's shift from waterfall mediation to header-bidding/unified auctions.
- Impression requests — how many ad opportunities per second feed both lanes.
- Waterfall per-network timeout — how long each hop in the waterfall waits for a network to answer before moving on; raising it lets more networks be tried but slows every request down.
- Demand quality — a shared multiplier on every network's fill probability, standing in for overall market demand (e.g. time of day, geo, ad density).
- Drag the lane view to pan, scroll/pinch to zoom; the strip below tracks revenue-per-minute for both lanes over time.