

A complete guide to price floor optimization for publishers to maximize ad revenue and protect inventory value across Google Ad Manager and Prebid.
As a publisher, your expertise in ad monetization likely includes leveraging strategic tools to maximize revenue. Among these, the price floor stands out as a pivotal concept, allowing you to set a deliberate, minimum Cost Per Mille (CPM) threshold. This baseline price safeguards your high-value ad inventory and ensures it is never undersold, protecting the inherent worth of your content.
Critically, when navigating open auctions or private deals, a well-implemented price floor proves instrumental. By doing so, you not only shield your revenue from potential undervaluation in the open market but also maintain the premium stature of your advertising space.
Price floors allow publishers to define a minimum acceptable CPM for their ad inventory. Pricing rules are the framework (usually within an ad server or wrapper) that govern when and how those floors apply across geos, devices, formats, and inventory types.
Publishers like you understand the juggling act of maximizing ad revenue without sacrificing quality. Price floors are your ultimate control panel in this high-stakes game.
Think of them as focused controls ensuring your coveted ad space never gets undervalued. Price floors can be meticulously adjusted:
Let’s break down these two key fronts:
Google Ad Manager’s price floors are your weapon within the open auction. By setting minimum CPMs, you prevent bargain-basement bids from winning your premium inventory. This ensures you retain control and command the true value your audience deserves.
For your header bidding partners, price floors are equally crucial. Fine-tuning these settings ensures your most valuable impressions command the respect (and CPMs) they deserve.
By wielding price floors strategically across both layers, you can maximize your revenue streams and keep your CPMs trending upward.
Now, because the majority of publishers use Google Ad Manager as an ad server, let’s understand how to set up and optimize price floors there. Google Ad Manager offers a range of tools to help you do this.
Pricing Rules allow publishers to control the sale of ad inventory by setting price floors for specific geographic locations, device types, ad units, and more.
Publishers can set:
How to set up UPR?
Navigate to UPR
Create a new UPR
Configure rule settings
Set the price floor
Save and activate
Optimized Competition helps balance the delivery of guaranteed and non-guaranteed line items. It sets a lower price floor for non-guaranteed demand channels (such as AdSense, AdX, and Prebid) to increase their chances of winning ad impressions.
Here’s a common scenario publishers face:
To meet the delivery goal, Google Ad Manager may temporarily increase the CPM of that guaranteed line item. This can limit opportunities for non-guaranteed line items (AdSense, AdX, Prebid) to compete for impressions.
To address this, you can enable Optimized Competition. This feature sets a lower price floor for non-guaranteed demand channels, allowing them to compete more effectively with guaranteed line items. By enabling it, you can potentially increase revenue from non-guaranteed sources without compromising delivery for guaranteed deals.
How to enable Optimized Competition

Additional Tip: To know about the performance of demand channels after enabling Optimized Competition, run reports in the server, and break down the metrics into Ad Exchange under the Optimization type* dimension.

Regardless of optimization at the ad server level, publishers should also ensure that:
Prebid, a powerful open-source header bidding framework, offers a flexible way to set price floors for your ad inventory. By establishing minimum bid prices, you can ensure that your ad space is valued appropriately and that your revenue potential is maximized.
Prebid allows you to set price floors based on the following dimensions:
In addition, publishers can define a price floor for device type, country, content type, and more. However, you must ensure the adapter you’re working with supports price floors for the ad sizes available on your website, because not all adapters do.
So, when setting a hard floor, ensure that:
To set a fixed minimum price for a specific ad unit, media type, and size combination, you can use a configuration like this:
floors: {
currency: 'USD',
schema: {
delimiter: '|',
fields: ['mediaType', 'size']
},
values: [
{ key: 'banner|300x250', floor: 1.10 },
{ key: 'video|300x250', floor: 2.00 }
]
}
Beyond static floors, publishers can set dynamic floors in Prebid after analyzing bidder behavior. Prebid allows you to delay the auction to obtain an optimal floor from a third-party floor provider, tailored to the specific page.
If the vendor fails to provide data within the delay window, Prebid will fall back to the floors defined in the local data object.
pbjs.setConfig({
floors: {
auctionDelay: 100, // in milliseconds
endpoint: {
url: ‘https://floorprovider.com/a1001-mysite.json’,
method: ‘GET’
},
data: { // default if endpoint doesn’t return in time
currency: ‘USD’,
schema: {
fields: [ ‘mediaType’ ]
},
values: [
{key: ‘banner’, floor: 0.80},
{key: ‘video’, floor: 1.20}
]
}
}
});
Now that you know how to set price floors in Prebid and Google Ad Manager, let's explore how to optimize them to maximize your ad revenue.
In addition to its optimization and troubleshooting tools, Google Ad Manager provides reports that enable publishers to analyze demand partner performance and optimize toward desired goals.
For price floor optimization specifically, you can make use of the Bid Data Report.
The report includes a field called BidRejectionReason that indicates why a bid was rejected.
If you see “Floor” as the rejection reason, it means the buyer’s CPM was lower than the floor you set.
By continuously analyzing this field, you can better understand bidder behavior and adjust your price floors accordingly.
Note- Bid Data Report is still in beta and only accessible to publishers using Google Ad Manager Premium (GAM 360). You can request access to this report via your Google Account Manager.
For Prebid, use header bidding analytics to monitor:
Then, set higher price floors for bidders who:
There isn't a one-size-fits-all solution for price floor optimization. It requires ongoing monitoring, analysis of demand partner behavior, and strategic adjustments. Instead of drastic changes, consider making incremental adjustments to your floor prices, perhaps in increments of a few cents, based on the average CPMs of your demand partners.
If you’re looking to simplify and automate your price floor optimization, consider Dynamic Flooring by Mile. This tool is designed for publishers using Prebid and offers a plug-and-play solution to streamline your ad operations.
Think of it as an AI-powered bidding maestro:
No more endless spreadsheets and guesswork, just data-driven optimization.
This solution integrates seamlessly with your Prebid setup, automating the process of setting and adjusting price floors.
Ready to embrace the future of ad optimization?
Our 4-week free trial gives you a risk-free way to experience the impact of dynamic price floors first-hand.
Go to Inventory → Unified Pricing Rules (UPR) and create a new rule. Under “Targeting,” select Geography or Device Category to apply different CPM floors. For example, set higher floors for U.S. traffic or desktop devices. Test performance to avoid fill-rate loss on mobile.
Run A/B tests in Google Ad Manager using separate line items or Prebid configurations. Start with small CPM adjustments (e.g., ±$0.10) and measure changes in eCPM, fill rate, and latency. Keep Core Web Vitals stable by limiting auction delays and script weight.
Platforms like Google Ad Manager, Prebid, and Dynamic Flooring by Mile use machine learning to adjust CPM floors in real time. These tools analyze bid density, win rate, and demand trends to automatically optimize floors without manual recalibration.

