Browse the help center

Set a bid floor and a minimum margin

Set a per-country bid floor that programmatic (OpenRTB DSP) bids must clear, and a minimum margin that direct CPM demand must leave the network on a site or placement.

How-to network manager Account → Publishers → site → Bid floor

A site or placement has two price floors, one for each kind of demand. The Bid floor card stops programmatic (OpenRTB DSP) bids below a per-country CPM. The Minimum margin on the Pricing card stops directly sold CPM banners that would leave the network less than a set margin. Neither changes what an advertiser is charged; the rest of the Pricing card is on Configure pricing.

Who this is for

  • Bid floor — whoever holds Bid Floor Management and update access to the site. It is an admin-only permission; see Set a bid floor.
  • Minimum margin — network managers who can edit the placement’s or site’s Pricing card (Manage Site Payment Model) and hold Manage Minimum Margin.

Prerequisites

  • The site or placement is saved.
  • For a minimum margin, the Pricing card on the placement or site is switched on and set to CPM — see Configure pricing.

Steps

The two settings are independent; set the one you need.

Set a bid floor

A Bid floor is the lowest price, per country, at which programmatic demand may buy a site or placement. It is sent to OpenRTB DSP partners as the request’s floor, and a DSP bid that comes back under it is dropped before the auction picks a winner. Directly sold campaigns are not filtered by it — their counterpart is the Minimum margin on the Pricing card.

Who can set it. The card needs the Bid Floor Management permission plus update access to the site (a Can Edit or Is Owner share). Bid Floor Management is an admin-only permission: no stock role holds it and a network manager cannot add it in the account role editor. It is granted under Admin → Users & access → Admin roles & permissions; if nobody in your network can open that page, ask Epom support or your account manager. Without it the card is not on the page at all, not even read-only. A publisher who needs a floor asks the network manager; the floor is set from an account the administrator has granted the permission to.

  1. Open the site (Account → Publishers → site) or a placement under it and find the Bid floor card. A placement floor overrides the site floor for that placement.
  2. Switch the card on.
  3. Pick a Country — or keep Global for every country without a row of its own; regions and custom country groups write one row per member country — enter the Price (CPM) and click Add. Repeat per country, or load many rows at once with Upload CSV.
  4. Optionally switch on Use as publisher price: on an impression bought by a DSP, the publisher is then paid the floor instead of the site’s or placement’s own pricing.

Bid floor or CPM threshold? The site’s CPM threshold guarantees the publisher a minimum CPM in reporting and payouts and is only the last fallback for the DSP floor; it never stops a direct campaign serving, and its card needs Manage Publisher CPM Threshold. The bid floor stops cheap programmatic bids. The floor sent to a DSP is the first non-zero value of: banner Bid floor → placement Bid floor → site Bid floor → the banner’s own price → the campaign price → the site CPM threshold.

Corner case: a floor a publisher sets in their own Prebid — the Price Floors module, params.bidFloor, or imp.bidfloor from an app — is separate from this card. The ad server honours it, in US dollars, before it bids on a header-bidding request; see Header bidding: what a publisher installs.

Set a minimum margin

Publisher side only, and only when the type is CPM — optionally set a Minimum margin: choose Absolute (an amount per thousand impressions) or Percent (a share of the advertiser’s price), enter the Margin value (0–100 for Percent, 0–1,000,000 for Absolute), and click Save, which commits the type and the value together and stays disabled until one of them changes. Direct CPM banners that leave the network less than this are dropped from that placement’s auction. Leave it at None to serve every linked banner regardless of price. If the two fields are absent, ask your network administrator for the Manage Minimum Margin permission. Read the CPC/CPA gotcha before relying on it.

Corner cases and gotchas

Corner case — a minimum margin can empty a placement. The filter runs before the winner is chosen, so every direct CPM banner that fails it is simply gone from that request; there is no “cheapest still wins” fallback. Set the value against real campaign prices and then watch the placement’s fill. A request whose whole candidate pool was dropped is recorded in the troubleshooting log as MIN_MARGIN. See Ad not serving. The placement’s own requirement wins; if the placement says None, the site’s requirement applies to all of its placements — resolved independently of which level supplies the price. The filter is on by default; Epom can switch it off for the whole network (a server-side setting), and saved requirements are then ignored.

Gotcha — a minimum margin does not protect you against CPC or CPA demand. The requirement compares the advertiser’s CPM against the publisher’s CPM payout. A CPC or CPA campaign earns per click or per conversion, so its effective CPM depends on a rate nobody knows when the ad is chosen — there is no honest number to compare, and those campaigns are left to serve unchecked. A CPM placement carrying CPC demand with a poor click rate can therefore lose money while a margin requirement is configured and looks active. Use per-campaign linking or price adjustment rules for that case. The card shows this warning itself once a requirement is set. One exception in your favour: a banner-level CPM price overrides its CPC/CPA campaign, and such a banner is checked.

Corner case — the minimum margin only covers fixed-price CPM links. It reads the fixed publisher CPM (placement first, then site) and compares it against the advertiser’s CPM. It therefore does nothing when the type is CPC or CPA, when the publisher is paid by revenue share (a percentage of gross can never breach a margin), or when the banner is an OpenRTB DSP creative — those clear their own bidfloor inside the auction. A publisher price of 0 is a real price, not a missing one, so free inventory is still covered: with nothing paid out the whole advertiser CPM is margin, and an Absolute requirement becomes a plain “the advertiser must pay at least this much” floor.

Corner case — unpriced banners fail every positive margin requirement. A banner whose campaign (and own) Pricing card is off earns the network nothing, which is treated identically to a CPM price of 0, so it stops serving on a placement with a margin requirement. House and filler campaigns are the usual casualty. Leave the requirement at None on inventory you fill that way, or give the house campaign a nominal price above the floor.

Note — the fastest way to test a margin change. The placement’s Banners probability panel applies the same requirement, so a banner that cannot clear it disappears from the panel exactly as it disappears from the auction — without waiting for traffic.

Per-role notes

  • Network manager — the stock role holds the Pricing card on sites and placements, but not Bid Floor Management; see Set a bid floor. If the minimum-margin fields are absent, ask your network administrator for Manage Minimum Margin.
  • Publisher — no Pricing, Revenue share or Bid floor card on the stock role. A floor is set by the network.
  • Can View share — the Pricing card is a plain read-only grid; changes need Can Edit or Is Owner.

Exact grants: see User roles.

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.