
A complete guide to price floor optimization for publishers to maximize ad revenue and protect inventory value across Google Ad Manager and Prebid.
Price floors set a minimum CPM to prevent underselling premium ad inventory
Dynamic and AI-driven floors outperform static setups for real-time yield gains
Use Unified Pricing Rules (UPR) in GAM for geo, device, and ad unit segmentation
Monitor Bid Data Reports and Prebid analytics to fine-tune floor strategies
Adjust floors seasonally and roll back when fill rate or Core Web Vitals drop
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.
Automatically adjusts to optimize yield based on real-time market conditions, making it ideal for publishers who need to maximize revenue across diverse, high-demand inventories.
Tiered price floors are considered beneficial for publishers, as it allows different floor prices for various ad formats, demand partners, or inventory types.
Reportedly, some platforms now offer smart price floors that leverage AI to predict optimal pricing based on a wide array of market and inventory-specific data.
Publishers like yourselves 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 for optimal results at the ad server level (for AdX), and at the wrapper level (for header bidding partners).
By wielding Price floors strategically, you can maximize your revenue streams and keep your CPMs soaring to new heights.
Now, as the majority of publishers have Google Ad Manager as an ad server, let’s understand how to set-up the price floor and optimize it for better results.
Google Ad Manager offers a range of tools to set and optimize price floors for publishers.
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 either a hard floor, a fixed minimum price, or a dynamic floor (also known as Target CPM). Target CPM is a flexible price floor that adjusts based on historical performance and real-time auction data.
Sign in to your Google Ad Manager account.
Go to Inventory > Unified Pricing Rules.
Click New Rule.
Select Price Floor as the rule type.
Name: Assign a descriptive name (e.g., "Premium Inventory Floor").
Inventory: Choose the specific ad units, placements, or packages to apply the rule to.
Geography: Select geographic locations to apply the rule (optional, for geo-targeted pricing).
Device Type: Choose device types (e.g., desktop, mobile, tablet) if you want device-specific pricing.
Floor Type: Choose between Hard Floor (fixed CPM) and Dynamic Floor (Target CPM).
Floor Value: Enter the minimum CPM value (e.g., $5.00 for a hard floor).
Review your settings.
Click Save and then Activate to enable the rule.
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.
Consider this scenario: You have a Standard line item with a goal of delivering 1 million ad impressions within 30 days. However, after 15 days, the line item has only delivered 10,000 impressions. To ensure the line item meets its delivery goal, Google Ad Manager may temporarily increase its CPM. This can limit the opportunity for other, non-guaranteed line items, such as those from AdSense, AdX, or Prebid, to compete for ad impressions.
To address this issue, 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 Optimized Competition, you can potentially increase revenue from non-guaranteed sources without impacting the delivery of your guaranteed line items.

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.

*Dimension is under Beta in Google Ad Manager.
Irrespective of the optimization done on the ad server level, a publisher is recommended to check if the Prebid is up-to-date, and has been optimally set up since every platform not to miss the revenue opportunities.
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:
So, while setting up a hard floor, you need to make sure that the price floor is set according to the media type (i.e. banner, video, etc.) since the CPM value for different inventories varies with the type and video CPMs are much higher than banner ads.
To set a fixed minimum price for a specific ad unit, media type, and size combination, you can use the following configuration:
floors: {
currency: 'USD',
schema: {
delimiter: '|',
fields: ['mediaType', 'size']
},
values: [
{ key: 'banner|300x250', floor: 1.10 },
{ key: 'video|300x250', floor: 2.00 }
]
}
Despite the hard price floor, publishers can set dynamic floors in Prebid after analyzing the behavior of bidder partners. Prebid enables a publisher to delay the auction in order to get them the optimal price floor tailored for the specific page from a third-party floor provider.
In case, the vendor fails to provide the data in the meantime, Prebid runs the auction based on the floors defined in the 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 various optimization and troubleshooting tools and features, Google Ad Manager has a list of reports that enable publishers to analyze the performance of the demand partners and do the optimization to achieve desired goals. Here, in the case of price floor optimization, you can make use of Bid Data Report.
Bid Data Report has a field BidRejectionReason that gives an overview of why the bid was rejected. Here, if you find “Floor” in the field, then it implies that the buyer’s CPM was less than the CPM decided by the publishers. Hence, the bid was rejected. Keep analyzing this field to understand the behavior of bidders and set the price floor accordingly.
Note: Bid Data Report is still under Beta and only accessible to the publishers who have access to Google Ad Manager Premium i.e GAM 360. However, you can enable the report for your account with the help of your Google Account Manager.
For Prebid, take advantage of header bidding analytics to check the bid rate, win rate, timeout rate, and other important parameters related to the CPM offerings of a bidder. And, set the price floor higher for the 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 powerful 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. It analyzes demand in real-time, constantly adjusting your floors to squeeze every last penny out of those ad impressions. No more endless spreadsheets and guesswork – just pure, data-driven optimization!
This powerful solution seamlessly integrates with your Prebid setup, automating the process of setting and adjusting price floors.
Our 4-week free trial is like a backstage pass to the world of dynamic price floors. See the magic for yourself, risk-free.
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.