Real-Time Bidding (RTB)
An auction that resolves before the page finishes loading
Real-Time Bidding is the auction protocol underneath programmatic advertising: the mechanism by which a single ad impression is offered to the market, bid on by multiple advertisers' systems, and awarded to a winner — all within roughly 100 milliseconds, while the webpage or app screen that will display the ad is still rendering.
This isn't a metaphorical 'fast auction.' It's a literal, standardized network protocol (OpenRTB, maintained by the IAB Tech Lab, is the dominant industry specification) where a bid request and the resulting bid responses are JSON or protobuf payloads sent over HTTP between an exchange and every DSP participating in that auction, all before the user has finished loading the page that triggered it.
The request/response sequence
The sequence, every single time a page with programmatic ad slots loads: (1) the page's ad tag fires and the publisher's SSP packages up the available impression — its size, placement, the page's content category, and (critically) an identifier or cohort describing the visitor; (2) the SSP sends this as a bid request to the ad exchange, which broadcasts it out to every connected DSP; (3) each DSP evaluates the bid request in real time against every active campaign it's running — does this impression match any campaign's targeting, and if so, what's that impression worth to that advertiser right now; (4) DSPs that want to bid return a bid response with a price and the creative to serve if they win; (5) the exchange compares all bid responses and determines a winner; (6) the winning creative is returned through the chain and rendered in the ad slot.
All six steps happen inside the page load's critical path, which is why ad latency budgets are measured in tens of milliseconds, not seconds — a DSP that takes too long to respond is simply excluded from that auction's result, regardless of what it would have bid.
{
"id": "auction_8832f1",
"imp": [{
"id": "1",
"banner": { "w": 300, "h": 250 },
"bidfloor": 0.50
}],
"site": { "domain": "example-news.com", "cat": ["IAB12"] },
"device": { "ua": "Mozilla/5.0...", "geo": { "country": "USA" } },
"user": { "id": "exchange-assigned-cookie-id" },
"at": 1
}
// A DSP's bid response:
{
"id": "auction_8832f1",
"seatbid": [{
"bid": [{
"impid": "1",
"price": 1.85,
"adm": "<creative markup or VAST tag>",
"crid": "creative_4471"
}]
}]
}First-price vs second-price auctions
The industry underwent a major mechanical shift around 2019: most major exchanges moved from second-price to first-price auctions, and understanding the difference explains a lot of pricing behavior advertisers see today.
In a second-price auction, the winning bidder pays only one cent more than the second-highest bid, not their own full bid amount. This was the original RTB standard, borrowed from Vickrey auction theory, and it let advertisers bid their true maximum value without fear of overpaying — the mechanism itself protected them from paying more than necessary.
In a first-price auction, the winning bidder pays exactly what they bid. This is now the dominant model across most exchanges. The consequence: advertisers (via their DSPs) can no longer safely bid their true maximum value, because doing so means paying that full amount even when the next-highest competing bid was far lower. DSPs responded by building bid shading — algorithmically lowering the submitted bid below the advertiser's true maximum willingness to pay, based on modeled predictions of what the actual winning price is likely to be, to recapture some of the second-price auction's efficiency inside a first-price mechanism.
Second-price vs first-price auctions
| Aspect | Second-price auction | First-price auction |
|---|---|---|
| Winner pays | Second-highest bid + $0.01 | Exactly their own submitted bid |
| Bidding strategy | Bid true maximum value safely | Must shade bid below true max to avoid overpaying |
| Who it favors | Advertiser (built-in price protection) | Publisher, unless DSP bid shading recaptures value |
| Industry status | Mostly phased out by major exchanges | Now the dominant model (Google, most major SSPs) |
Bid shading is now table stakes, not a differentiator
Bid floors and why some impressions never get bid on
Publishers set a bidfloor — a minimum acceptable price for an impression — directly in the bid request. If no DSP's bid clears that floor, the auction has no winner and the impression goes unsold for that round (often falling back to a lower-priority ad source, or house ads). Floors are how publishers protect inventory value from being commoditized to near-zero by the open auction, but set too high, they also reduce fill rate — the percentage of available impressions that actually sell — leaving the publisher with unsold, unmonetized inventory instead.
Latency timeouts silently exclude bidders
What's next
RTB is the mechanism; DSPs are the tool advertisers actually use to participate in it. See Demand-Side Platforms (DSPs) for how targeting, budget pacing, and bid strategy are configured on the advertiser side of this auction.
Next: Demand-Side Platforms (DSPs) →
I build these systems professionally.
Whether it's a RAG pipeline, analytics migration, or AI workflow — let's talk.