Browse the help center

First-price vs second-price auctions

What the winner actually pays under each auction model, and how Epom applies first price, second price and fixed-floor pricing to DSP banners and PMP deals — including the floor checks that decide whether a bid wins at all.

Concept network manager admin

When several bidders compete for one impression, the auction type decides what the winner actually pays. Two models dominate programmatic advertising, and Epom exposes both — plus a fixed-price variant — as concrete controls on DSP banners and PMP deals. This page explains the industry concept, then pins each model to the exact Epom toggle and to the precise price the ad server clears at.

The two models

First price. The highest bidder wins and pays their own bid. Simple and transparent, but it puts the pressure on the buyer to bid-shade (guess how low they can go and still win), because overbidding costs them the full difference.

Second price. The highest bidder wins but pays just above the second-highest bid, not their own. Classic Vickrey logic: a buyer can safely bid their true value because winning never costs more than one increment over the runner-up. Historically the open-web default; largely displaced by first price on SSP-to-DSP paths, but still used inside deals and single-exchange auctions.

The difference only matters when more than one bid competes. With a single bidder there is no runner-up to price against. Epom’s answer for that case is covered under What Epom clears at: a lone second-price bid clears at the bid floor plus one cent, not at its own bid.

What Epom clears at

Epom’s auction type has three values:

Auction typeWinner paysWhen it applies
First priceTheir own bid, unchangedDefault for DSP banner auctions
Second priceTwo or more DSPs still have a bid after the deal and scan filters: the runner-up bid + $0.01, capped at the winning bid. Only one DSP does: the bid floor + $0.01, capped at the bidA DSP banner with Always 2nd price as +$0.01 that is the only candidate; several DSP banners competing with Force First Price Auction Type switched off; second-price PMP deals
Bid floor priceExactly the deal floor, whatever they bidFixed-price PMP deals only

The + $0.01 increment (ONE_CENT) is Epom’s clearing step for second price. It never lifts the price above what the winner actually bid, so if the runner-up (or the floor) is within a cent of the winning bid, the winner simply pays its own bid.

Floors decide whether a bid can win at all. After the winner is chosen and its second-price price worked out, the price is compared with the bid floor sent in the request (the deal floor when the bid belongs to a PMP deal). A price below it leaves the auction with no winner, and the pick falls back to your direct demand. See The bid floor for where the floor comes from.

Second price on DSP banners

On an OpenRTB (DSP) banner the auction type is not a free-text field. It is worked out for every DSP request from the banner’s Always 2nd price as +$0.01 checkbox, the partner’s Force First Price Auction Type parameter, and how many DSP banners compete in this auction:

  • One DSP banner, Always 2nd price on → second price. The lone candidate has no runner-up to under-cut, so it clears at the bid floor plus one cent (capped at its bid) — the partner pays the floor rather than its full bid.
  • One DSP banner, Always 2nd price off → first price. The winner pays its bid.
  • Several DSP banners, Force First Price Auction Type on or not set → first price. This is the default: the parameter’s default is on, and an absent value counts as on.
  • Several DSP banners, Force First Price Auction Type explicitly off → second price. The winner clears at the runner-up bid plus one cent, capped at its own bid.

Always 2nd price only matters when the banner is the sole candidate; with several candidates the Force First Price parameter decides. The parameter has to be ticked on the DSP partner’s Parameters card before a banner can set it (see DSP partners). The type applied is the one of the winning bid’s own banner.

Note: the clearing math runs on Epom’s side after bids come back — it does not change what the DSP is told to bid. The bid request still carries an at (auction type) value so the partner knows the model, but the final win price is computed from the returned bids using the rules above.

First / second / fixed on PMP deals

A PMP deal attached to a campaign carries its own auction type, set per deal row in the deal’s Auction type field. This overrides the banner’s setting for any bid that references the deal — the deal terms are the contract, so the deal’s model wins:

Deal auction typeWhat the buyer paysUse it for
First priceTheir bid (any bid at or above the deal floor is accepted)Standard preferred deals
Second priceSecond-highest bid + $0.01, but never below the deal floor + $0.01, and never above their bid. With only one DSP answering: the deal floor + $0.01, capped at the bidDeals where the buyer negotiated second-price billing
Bid floor priceExactly the deal floor, whatever they bidFixed-price deals — a homepage takeover at “$X CPM”

The fixed-price (Bid floor) case is the sharpest: the moment a bid clears the deal-floor and seat checks, its price is overwritten with the deal floor. The buyer’s bid amount above the floor is irrelevant — everyone on that deal clears at the same negotiated CPM. The second-price deal case adds the deal floor as a lower bound: with two or more bids the win clears at the runner-up

  • $0.01, but never drops below deal floor + $0.01, protecting the negotiated minimum. A bid priced below the deal floor is dropped before the winner is chosen.

A valid deal bid also skips the open-auction floor — the deal floor replaces your placement/site bid floors and the site CPM threshold, in both directions (a deal priced below your open floor still clears; a generous open floor doesn’t protect you from a cheaply-priced deal). See PMP private deals for the seat-match and private-auction rules around this.

Where auctions sit in ad selection

The auction is step 8 of ad selection: it runs only if the selection pipeline already picked a programmatic banner. Everything before it — targeting, capping, limits, priority tiers — decides whether an auction even happens; the auction type decides only what the winner pays once it does. If no acceptable bid arrives, the programmatic banners are dropped and selection re-runs over your direct demand (the same priority tier first, then the tiers below), so a lost auction still fills with your own ads when possible.

Corner cases

Corner case: with a private auction on a deal-only campaign, non-deal (open-auction) bids are rejected — the auction runs only among bids that reference a valid deal, each priced by that deal’s auction type. See PMP private deals.

Corner case: a second-price discount needs a runner-up. With two or more answering DSPs the winner pays the runner-up plus a cent; with a single answering DSP the “runner-up” is your bid floor, so the partner pays the floor plus a cent however high it bid. On thin, single-partner inventory Always 2nd price therefore lowers the price to the floor — worth knowing before you tick it on a partner that bids well above it.

Corner case: the one-cent increment means the reported win price on a second-price auction is rarely a round number. A cleared price like $2.34 is runner-up $2.33 + $0.01 (or floor $2.33 + $0.01), not the winner’s bid — reading it as the buyer’s bid overstates what they were willing to pay.

Related pages

Please disable Adblock
Are you using adblock? Disable it and reload the page to proceed to the destination page.

A registration has already been submitted from this page. Please try again in 10 minutes.