Set your price floors too high and advertisers walk away. Set them too low and you’re basically giving away ad space for cheap. It’s like selling your favorite game for five bucks—you’ll regret it later.

Price floors are one of the easiest ways to boost ad revenue without getting more traffic. The trick is setting them the right way and updating them as the market changes.

This guide shows you how price floors work, where to set them, and the mistakes that quietly drain your earnings.

price floors for programmatic ads

What Is a Price Floor, Exactly?

A price floor is the minimum CPM you’ll accept for an impression. Set a $2 floor on an ad unit, and any bid below $2 gets rejected outright. The impression either goes unsold or falls through to a lower-priority demand source.

Every bid request carries that floor in the bidfloor field, so demand-side platforms know the price to beat before they even respond. No floor, no signal, and DSPs will bid whatever they think they can get away with. Over time, that number tends to drift downward.

Floors exist at multiple layers in a typical header bidding setup — inside Prebid, inside your ad server, sometimes inside the SSP itself.

That layering is exactly where publishers get tripped up, so it’s worth understanding each layer before touching a single number.

Why Floors Break When You Set Them Wrong

Two failure modes, and they’re mirror images of each other.

Floor too high, and legitimate demand gets filtered out before it ever has a chance to compete. Your fill rate drops, unsold inventory piles up, and you end up serving public service ads or nothing at all on space that could’ve earned something.

Floor too low, and buyers eventually notice. DSP bidding algorithms are built to find the cheapest price that wins, so a floor with no teeth just becomes the new ceiling.

Publishers running static floors typically leave 20-30% of potential CPM revenue on the table, according to ad tech vendors tracking client performance across header bidding setups.

Neither mistake announces itself immediately. Fill rate looks fine, RPM looks fine, and the erosion only shows up months later when someone finally pulls a year-over-year report.

How Do You Choose a Starting Floor Price?

Start with data, not a guess. Pull 60 to 90 days of historical bid data for each ad unit and look at where the bid distribution actually clusters, not just the average.

A unit averaging $3 CPM might have half its bids sitting at $4.50 and the rest down near $0.80. A single floor at $3 would reject good bids and accept nothing but the worst ones.

A few starting points that hold up in practice:

  • Set floors per ad unit and per format. A 300×250 in the sidebar and a leaderboard above the fold don’t deserve the same number.
  • Segment by geo and device where you have enough volume to justify it. US desktop traffic and Tier 3 mobile traffic aren’t the same market.
  • Look at what comparable publishers in your niche and traffic tier are running, if you can get that data from an ad ops partner or SSP rep — floors that work for a 50,000-pageview blog won’t translate to a 5-million-pageview news site.
  • Leave room to test. A floor you never revisit is really just a guess that got lucky once.

Hard Floors vs. Soft Floors: Which Should You Use?

A hard floor is absolute. No bid below it wins, period, regardless of how thin demand is that day.

A soft floor is closer to a strong suggestion — a bid that lands slightly under it can still win the auction if nothing else clears the bar, which keeps fill rate up during slow periods without fully abandoning your pricing discipline.

Most experienced ad ops teams run soft floors on the bulk of their inventory and reserve hard floors for premium placements where they’d genuinely rather leave the space unsold than give it away.

If you’re just getting started, soft floors are the safer default. They protect against total revenue loss on thin-demand days while still giving you room to raise the bar once you have real bid data to work from.

How Do You Set Floors in Google Ad Manager?

GAM’s pricing rules function as a baseline across all demand sources, including AdX and any programmatic buying that routes through GAM outside your header bidding wrapper.

Think of it as the floor beneath your floor: the absolute minimum you’ll accept no matter which channel the bid arrives through.

To configure one, go to Inventory > Pricing rules in GAM, select the ad units or line items you want to target, and set either a fixed floor or a target CPM.

Target CPM is worth knowing about — instead of a hard minimum, GAM adjusts the effective floor to chase an average price across the traffic it covers, which smooths out some of the manual guesswork.

GAM rules are easy to set up through the dashboard and don’t require engineering time, but they’re also blunt. Adjustments happen manually or on whatever cadence your team remembers to check, not in real time.

How Do You Set Floors in Prebid?

This is where the real granularity lives. The Prebid Price Floors Module lets you define floors by ad unit, media type, size, GPT slot name, and bidder, all inside your Prebid.js configuration.

A publisher running video, native, and standard display can set entirely different floors for each without touching GAM at all.

You’ve got three implementation paths: static floors defined directly in the config, package floors bundled with your Prebid wrapper if your provider supports them, or dynamic floors pulled from an external endpoint before each auction runs.

Dynamic is the most work to set up and the most effective once it’s running, since it reacts to real bidder behavior instead of a number someone typed in six months ago.

LayerWhere it appliesGranularity
Update frequency
GAM pricing rulesAll demand, including AdXAd unit / line itemManual, periodic
Prebid static floorsHeader bidding partners onlyAd unit, size, media type, bidderManual, periodic
Prebid dynamic floorsHeader bidding partners onlyPer-impressionReal-time

Should You Use Dynamic Floors?

If your site does meaningful header bidding volume, probably yes. Dynamic floors adjust automatically based on each bidder’s historical behavior, so a DSP that’s been bidding $3 and suddenly drops to $1 gets nudged back toward $2 rather than allowed to just win at the new low price.

Early data from publishers running ML-driven dynamic flooring shows RPM gains in the 15-40% range compared to static floors, with the wider gains showing up on sites with enough auction volume for the model to actually learn bidder patterns.

The catch is that dynamic floors need enough data to work. A site doing a few thousand impressions a day won’t generate enough signal for per-bidder modeling to mean much, and layering on a dynamic floor provider adds latency and, often, a vendor fee.

For smaller publishers, a well-tuned hybrid of GAM rules plus static Prebid floors, reviewed monthly, usually gets most of the benefit without the added complexity.

Common Mistakes That Cost Publishers Revenue

Setting One Floor for the Entire Site

Imagine charging the same price for a luxury hotel room and a parking space. Sounds ridiculous, right? That’s exactly what happens when you use one price floor across your entire site. Your homepage hero ad and a footer ad on a five-year-old blog post don’t have the same value, so they shouldn’t have the same floor.

Never Revisiting Floors After Launch

The ad market never sits still. Demand changes with the seasons, big shopping events, and even the economy. A floor that worked during the holiday rush could be costing you money a few months later. Check your floors regularly instead of setting them once and forgetting they exist.

Ignoring SSP-Level Floors Entirely

Your SSPs might already be applying their own price floors behind the scenes. If those numbers don’t match what you’ve set in Google Ad Manager or Prebid, things can get messy fast. It’s like two people trying to steer the same car in different directions.

Chasing Fill Rate Over Yield.

A high fill rate looks impressive until you realize your ads are selling for pennies. Don’t get distracted by a 98% fill rate if your RPM is dropping. Revenue is what pays the bills, not a pretty percentage.

Treating Floors as Separate From Your Ad Strategy.

Modern ad networks use AI to decide what your inventory is worth in real time. If your price floors are outdated, you’re holding those systems back instead of helping them earn you more. Smart floors and smart demand work best as a team.

FAQ

What happens if my price floor is too high?

Too high, and advertisers stop bidding. That means empty ad spaces or lower-paying backup ads, which can actually hurt your earnings.

Do price floors affect fill rate?

Absolutely. Higher floors usually mean lower fill rates. The goal isn’t to fill every ad slot—it’s to make the most money overall.

How often should I update my price floors?

At least once a month. The ad market changes all the time, so old price floors can quietly cost you money.

Can I set different floors for mobile and desktop?

Yes, and you should. Mobile and desktop attract different advertisers, so each deserves its own pricing.

Is a hard floor or soft floor better for beginners?

For most new publishers, soft floors are the smarter choice. They protect your inventory without scaring away too many bidders while you learn what your ad space is really worth.

The Bottom Line

Price floors aren’t a set-once configuration. They’re an ongoing part of running programmatic inventory, the same way you’d revisit ad placements or SSP partnerships.

Start with real bid data instead of a guess, layer GAM rules underneath Prebid floors for a safety net, and check back monthly at a minimum. Publishers who treat floors as a living part of their yield strategy consistently outearn the ones who set a number once and moved on.

If you haven’t touched your floors since you set up header bidding, that’s the first place to start this week.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Sign up for How to Sell on Shopify

Get access to our FREE full Shopify Course and product monetization. 

>