
An ad auction is the split-second sale that decides which ad fills a slot on your page. Each time a page loads, your ad server asks buyers to bid on that one impression. It checks the bids against your rules and shows the ad that's worth the most to you.
The catch is that it's rarely one auction. A single impression can pass through Prebid on the page, several SSPs, Google's own exchange and then your ad server. Each of those runs its own small auction. If you don't know which link made which decision, it's hard to tell why your prices moved.
This guide follows one impression from page load to the winning ad. It explains how the winner and the price are set, and shows the settings you control at each step. If you'd rather have someone set up the whole chain for you, that's what our header bidding service does.
What is an ad auction?
An ad auction is the process a platform uses to collect competing bids for one ad impression, filter them and pick a winner. In programmatic advertising this happens automatically, for every impression, in well under a second.
IAB Tech Lab, the industry's standards body, now has a formal definition. Its Programmatic Auction Definitions primer was written alongside the Media Rating Council's auction transparency work. It describes an auction as "the process an entity receiving competing bids uses to qualify, evaluate, and decide which to pursue and which to ignore."
Two words in that definition matter for you. "Qualify" means bids get thrown out before they compete, for being late, broken or blocked. "Evaluate" means price isn't the only thing that counts. The same primer says "Few auctions are executed purely based on price," and lists direct-sold campaigns, frequency caps and competitive separation as reasons a cheaper ad can win.
So when we say "the" ad auction, we really mean a short chain of them. The last one decides what your reader sees.
Who takes part in a programmatic auction?
A programmatic auction has a seller (you), the platforms that pass your impression along, and the buyers' platforms that bid. IAB Tech Lab's primer gives each role a name, and they map neatly onto the tools you already use.
| IAB Tech Lab role | What it does | What it usually is for a publisher |
|---|---|---|
| Ad inventory controller | Has the right to sell the impression | You, the site owner (or a partner you've authorised in ads.txt) |
| Ad request initiator | Creates the ad request when the page loads | Your ad tags, Google Publisher Tag and Prebid.js |
| Selling platform | Passes the request to buyers and runs its own auction on their bids | SSPs and ad exchanges, including Google Ad Exchange |
| Buying platform | Decides whether the impression fits a campaign and bids | DSPs used by advertisers and agencies |
| Final auctioneer | Decides which bid, if any, gets the impression | Your ad server, usually Google Ad Manager |
The last row is the one most guides leave out. The primer says the final auctioneer "is often the publisher's ad server." That's your Ad Manager account, with your line items, your pricing rules and your blocks. You run the final auction.
If the SSP and DSP side is still fuzzy, our guide to supply side platforms explains what an SSP does with your impression before it reaches a buyer.
How do ad auctions work, step by step?
Ad auctions work in three phases: the request goes out, bids come back and get filtered, and the final auctioneer picks a winner. IAB Tech Lab splits the ad auction process into 13 numbered steps (0 to 12). Here's the publisher's version, with the steps grouped the way you'd see them in your own setup.
- Your slot is set up. Before any auction, your ad server holds the ad units, sizes and campaigns. The primer notes the auction only starts "when the slot isn't immediately filled with a direct sold campaign."
- The page builds an ad request. Your tags describe the page, the slot, the device and any consent signal. In header bidding, Prebid.js sends this to each bidder at the same time.
- Each selling platform checks the request. SSPs validate it, including your ads.txt file, sellers.json and the supply chain object. The primer is blunt about failures: "If the ad request is malformed or unauthorized, then processing should stop."
- Bids are requested. SSPs send the request to buyers, but not to all of them. Some buyers don't want certain countries, and some SSPs predict a buyer won't bid and skip it.
- Buyers bid or pass. A DSP can return a bid, a no-bid, an error or nothing at all.
- Late and broken bids are dropped. The first error case IAB Tech Lab lists is a bid "received after timeout expired."
- Bids are checked against your rules. Price floors, blocked categories, blocked advertisers and deal terms all apply here. A bid that breaks a rule never competes.
- Each platform picks its winner and sends it up the chain. An SSP's winner is only a candidate. It still has to beat everything else in your ad server.
- Your ad server makes the final call and the ad renders. Then impressions are counted, and the platforms reconcile their numbers each month.
Steps 3 to 8 can repeat several times for one impression. The primer calls this a multi-hop supply chain and adds that "more than 2-3 hops is rare and generally suboptimal." Every extra hop is another reseller between you and the buyer.
One impression through the whole chain
A worked example makes the chain easy to see. These numbers are made up for the example, but each decision follows the rules in the Google Ad Manager and Prebid docs quoted below.
Say a reader in the US opens one of your articles. The page has a 300x250 slot. You run Prebid.js with three SSPs, Google Ad Manager with Ad Exchange and one Open Bidding partner, and a direct-sold campaign that's on schedule. Your pricing rule floor for US desktop is $1.00.
| Stage | Who decides | What happens | Result |
|---|---|---|---|
| Header bidding auction | Prebid.js on the page | SSP A bids $2.10, SSP B bids $1.60, SSP C answers after the 1,000 ms timeout | SSP C is dropped; $2.10 goes to the ad server as a key-value |
| Header bidding line item | Ad Manager | The $2.10 bid matches a Price Priority line item | Competes as a $2.10 remnant line item |
| Open Bidding auction | Ad Manager, server to server | Partner D bids $1.90 after revenue share | $1.90 candidate |
| Open auction | Ad Exchange | Best net bid is $2.40; one $0.70 bid falls under the floor | $2.40 candidate; the $0.70 bid never competes |
| Direct campaign | Ad Manager dynamic allocation | The on-schedule Standard line item gets an opportunity cost of $1.20 | $1.20 candidate |
| Final decision | Ad Manager | Highest value wins | Ad Exchange serves the ad at $2.40 |
Now change one thing. If that direct campaign falls behind on delivery, Ad Manager raises its opportunity cost so it wins more often. The same impression could then go to the direct campaign, even though a programmatic buyer offered more. That isn't a bug. You told the ad server the campaign was guaranteed.
Change something else. Raise the Prebid timeout to 1,500 ms and SSP C's bid gets in. If SSP C would have bid $2.60, it wins. But every extra 500 ms also delays every ad on the page, so slower pages can cost you viewability and buyers. Timeouts are a trade-off, not a free win.
Who wins an ad auction, and what price is paid?
The highest-value eligible bid wins the ad auction, and in today's programmatic auctions the winner pays what it bid. "Eligible" is the important word: late bids, blocked advertisers and bids under your floor have already been removed.
For Google's exchange, the Ad Manager auction model page says it "determines the winning bidder based on the highest net bid submitted." It adds that "the winning buyer is never charged more than the bid it submits," and that sellers "receive no less than the CPM floor price they specified for the auction." Net means after Google's revenue share, so the bid you compare is the money that reaches you.
Google moved Ad Manager to a unified first-price auction in 2019. In its announcement, Google said first-price auctions have "a neutral to positive impact on a publisher's total revenue" and that buyers would receive "the minimum bid price to win after the auction closes." Buyers use that feedback to trim their bids, which is called bid shading. More real competition is what stops shading from pulling your prices down.
Price isn't the whole story inside your ad server, though. Google's dynamic allocation page explains how direct and programmatic demand meet:
- Guaranteed line items (Sponsorship and Standard, priorities 1 to 10) compete with "a temporary CPM or 'opportunity cost' that Ad Manager calculates automatically."
- Remnant line items (Price Priority, Network and Bulk, priority 12) "compete based on price." Your header bidding line items usually sit here.
- Ad Exchange "competes in real time with the highest CPM of the remnant line items," and Open Bidding joins the same competition when it's turned on.
- House ads don't need to meet any floor. They fill what's left.
Types of ad auctions publishers deal with
The types of ad auctions you'll meet split two ways: by who can bid (open, private or none) and by where the auction runs (in the browser or on a server). Most publishers use several at once on the same slot.
| Auction type | Who can bid | Where it runs | Your main control |
|---|---|---|---|
| Open auction | Any approved buyer on the exchange | The exchange or SSP | Floors and blocks |
| Private auction (private marketplace) | Invited buyers, using a deal ID | The exchange or SSP | Deal floor and invited buyers |
| Header bidding auction | Bidders you add to Prebid | The reader's browser, or a Prebid Server | Bidders, timeout, price granularity |
| Open Bidding | Third-party exchanges you invite into Ad Manager | Google's servers | Partners, floors through pricing rules |
| Programmatic guaranteed | One buyer at a fixed price and volume | No auction; it's a direct deal | Price and volume in the deal |
Google's Open Bidding introduction sums up the difference with header bidding well. With Open Bidding, "Ad Manager communicates directly with third-party demand partners in a server-to-server connection." With header bidding, "complex custom header bidding code is usually required." Older waterfall mediation called partners "individually, in sequence," while Open Bidding "calls all yield partners at once."
For the full open auction vs deals picture, see our guide to real time bidding. It shows the bid request fields buyers read in each case.
How the header bidding auction fits in
A header bidding auction runs before your ad server is called and feeds its winner into the final auction. Prebid's introduction puts it in one line: "Prebid collects bids before the ad server is called, and the ad server makes the final decision."
Prebid calls all bidders at once and waits for a set time. In Prebid's words, "any bidder not returning a result within the timeout duration is excluded from the auction." Prebid's docs don't give a single recommended timeout. Test yours on your own traffic. Our Prebid.js setup guide covers where that setting lives.
Price floors and the rules you set
Price floors are the minimum a bid must reach to compete in your auction. In Ad Manager you set them with pricing rules, and they apply to the open auction, private auctions, First Look and Open Bidding.
The pricing rules help page spells out how they behave:
- "If two pricing rules target overlapping inventory, the rule with the higher price applies." A broad old rule can quietly beat your careful new one.
- Floors apply "to the value of a bid that would be paid to a publisher," so they're net of revenue share.
- Remnant line items "must have a CPM that meets or exceeds the price set in pricing rules to compete in the auction."
- "Pricing does not apply to campaigns negotiated via Programmatic Direct."
- The floor is sent to buyers in the
bidfloorfield of the bid request, so they see it, along with the rest of the data every bid request carries. - You get "up to 200 pricing rules per Ad Manager network."
Floors that are too high block bids you'd have taken. Floors that are missing let shaded bids win cheaply on thin slots. Set them per country group, device and unit from your own bid data, not one sitewide number.
What you control in every ad auction
You control more of the ad auction than most publishers think: who can sell your inventory, who gets asked to bid, how long you wait, which bids qualify and how direct campaigns compete. When we review a publisher's setup, we check these in this order.
- ads.txt and sellers.json. An impression from a seller you haven't listed is what IAB Tech Lab calls an "unauthorized ad request," and many buyers won't bid on it. Check every partner line, and match it to the partner's sellers.json entry.
- Your bidders. Every independent buyer raises the price the winner has to beat. Several SSPs reselling the same buyers only adds hops.
- Your Prebid timeout. Look at how many bids arrive late and how fast your pages load before changing it.
- Your pricing rules. Look for overlapping rules, floors left over from the second-price era and slots with no floor at all.
- Your blocks. Every blocked category or advertiser removes buyers. Keep the ones you need and drop the "just in case" ones.
- Your line items. Check that header bidding line items cover enough price buckets, and that direct campaigns aren't set up to win impressions they don't need.
If your reports can't show bids by bidder, unit and country, start there. Our reporting and yield service sets that up, because changes made without that view are guesses.
Ad auction FAQ
These are the questions publishers ask us most about how ad auctions work, answered briefly.
How long does an ad auction take?
Most of an ad auction happens in well under a second. Header bidding adds the Prebid timeout you set, which is the longest you'll wait for bids before calling your ad server. The final decision in Ad Manager follows right after.
Does the highest bid always win an ad auction?
No. The highest eligible bid wins only if nothing in your ad server is worth more. A guaranteed campaign that's behind schedule can take the impression, and bids under your floor or from blocked advertisers never compete at all.
Is an ad auction the same as real time bidding?
Not quite. Real time bidding is the method buyers use to bid on one impression at a time. The ad auction is the decision that picks the winner. Real time bidding feeds bids into the auction.
Are ad auctions first-price or second-price?
Most programmatic ad auctions are first-price today, so the winner pays what it bid. Google moved Ad Manager to a unified first-price auction in 2019, and AdSense followed in 2021.
Can publishers see the bids in an auction?
Partly. Prebid can report every bid it receives, and Ad Manager reports show the winning bids and prices. You don't see bids inside other exchanges' auctions, only the winners they send you.
Do AdSense publishers have an ad auction?
Yes. AdSense runs an auction for every ad request too, but Google runs it for you and gives you no floors or bidder controls. That's the main reason larger sites move to Ad Manager with header bidding.
Your next step
Every impression you sell goes through a short chain of auctions, and the final one runs in your own ad server. The fastest wins usually come from fixing the links you control: clean ads.txt, the right bidders, a tested timeout and floors set from real data.
If you want a second opinion on your auction setup, send us your site and we'll show you where bids are being lost.
More guides in this topic
- Programmatic Advertising for Publishers in Plain English
- What Is a Supply Side Platform? A Publisher Guide
- DSP vs SSP Explained From the Publisher's Side
- Programmatic Display Advertising Explained for Publishers
- Prebid.js Setup Guide for Publishers, Step by Step
- Programmatic Media Buying Explained for Publishers
- DMP for Publishers and When You Actually Need One
- Contextual Advertising Explained for Website Publishers
- What Are Third Party Cookies? A Guide for Publishers
- Walled Garden Advertising Explained for Publishers
- Real Time Bidding Explained for Website Publishers
- Ad Network vs Ad Exchange for Publishers Explained
- What Is Bid Shading? A Plain Guide for Publishers
- Privacy Sandbox for Publishers After Google Retired It
- What Is a Universal ID? A Guide for Publishers
- First Party Data Strategy for Publishers (2026 Guide)
- What Is Cookie Syncing? A Plain Guide for Publishers
- Bidstream Data Explained for Publishers (2026 Guide)
- Traffic Shaping in Programmatic Advertising for Publishers


