In September 2019, Google moved Ad Manager to a unified first-price auction, and unified pricing rules (UPR) became the single mechanism for controlling floors on non-guaranteed demand. Before that change, publishers maintained separate floor logic for Ad Exchange, for Open Bidding, and for header bidding partners, and the contradictions between those systems leaked revenue. Google has since retired the dedicated unified pricing rules help page, but the mechanism itself still sits at the center of how any publisher using GAM protects CPMs. This article explains how UPR behaves under first-price dynamics, where publishers most often get floor logic wrong, and the practices we apply at WireAds when we manage pricing rules alongside Prebid, Google MCM, and direct deals.
What Unified Pricing Rules Actually Control
A unified pricing rule consists of a floor price plus targeting conditions: ad unit size, geography, device, format, buyer, or deal type. GAM applies the floor at auction time to every non-guaranteed demand path, including Ad Exchange, Authorized Buyers, Open Bidding, and any third-party demand routed through the ad server. Bids below the floor lose the auction. Bids above the floor compete, and under first-price logic the highest eligible bid wins and pays its own number.
When Google announced the unified pricing rules introduction, the company framed the feature as one consistent floor across Ad Exchange and third-party demand, which was the entire point of the first-price switch. Google's current documentation on managing floor prices in GAM confirms that pricing rules centralize auction floor management for non-guaranteed demand. Guaranteed line items sit outside this system, so direct reservations you negotiate yourself do not interact with UPR floors.
Two properties matter for daily operations. First, if several rules match one request, GAM applies the highest matching floor, so overlapping rules do not average out; the strictest one wins. Second, floors do not create bids, they only filter them. A floor raises revenue only when real demand exists above it, which makes your bid distribution data the foundation of every decision that follows.
In the GAM interface you build rules under the pricing section of a line item or as shared rules at the network level, and you can attach them to specific ad units, placements, or key-values. Network-level shared rules suit most publishers better than per-line-item floors, because a single edit propagates everywhere and you avoid the classic failure mode where one forgotten line item carries a floor from two years ago.
Why First-Price Auctions Changed Floor Behavior
In a second-price auction, the winner paid one increment above the runner-up, so a floor worked indirectly: it either eliminated low bids or lifted the clearing price when it sat between the top two bids. Bidders could bid their true value because the mechanics protected them from overpaying. First-price removed that protection. As Google explained when switching to first-price auction floors, in the unified first-price auction the winner pays exactly the bid.
Bidders responded rationally by shading: they submit less than what an impression is worth to them, and they calibrate that shading against the floors they observe. Your floor now functions as a public negotiating position. A floor of 1.20 USD tells every exchange and DSP that bids below 1.20 never win, so sophisticated buyers shade to just above 1.20 on inventory where the true value sits much higher. Naive buyers keep bidding honestly, which is why floors tend to lift revenue from long-tail demand first.
This creates the central tension of floor management in the first-price era. A floor near the top of your bid distribution captures more per impression but wins less often, and a floor near the bottom wins almost everything but captures little. Revenue equals price level multiplied by win rate, so the optimum sits where that product peaks, not at the highest floor that still occasionally transacts. Publishers who chase high floors without checking win rate routinely lose 15 to 30 percent of available revenue to the gap between rejected low bids and absent high ones.

Build Floors From Evidence, Not From Folklore
The only defensible input to a floor decision is your own bid distribution, segmented by size, geography, and format. GAM reporting, Prebid analytics, and your SSP's reporting each expose parts of the distribution: GAM shows winning prices, Prebid shows all bids including losers, and your SSP shows what its demand actually offered. Pull at least 30 days of data so weekly demand cycles average out, and avoid drawing conclusions from holiday weeks or campaign-flight anomalies.
Start with the winning-bid histogram for each segment. Find the mode, the median, and the 75th percentile. A practical first-price floor sits slightly below the mode of winning bids: it removes the unproductive tail while barely touching the bids that normally win. Then run the arithmetic backward from your revenue target with our CPM calculator: if a placement needs a 2.10 USD CPM to hit plan and the observed mode sits at 1.60 USD, the placement needs more demand or a better position, not a wishful floor of 2.50 USD that nothing will clear.
Resist the temptation to copy floors from forums, partner defaults, or another publisher's setup. Bid distributions differ by vertical, geography, audience, and layout, so a floor that performs well on a US news site can gut fill rate on a gaming site in Southeast Asia. Treat any floor you did not derive from your own data as a hypothesis to test, never as a setting to keep.
Keep One Floor Logic Across Every Demand Path
The most expensive UPR mistake happens outside GAM. Publishers set unified pricing rules in GAM, then set separate floors in Prebid.js through the price floors module, and sometimes a third set inside individual partner interfaces. Each floor layer sends a different signal to the same bidders, and the layers interact badly.
Consider a concrete failure: Prebid sends a floor of 0.30 USD in the bid request, so buyers shade toward 0.30. GAM holds a UPR floor of 1.20 USD for the same slot. Buyers bid 0.35, GAM rejects everything, and the impression falls through to a low-value fallback or goes unfilled. The publisher sees a healthy Prebid bid stream and a collapsed Ad Manager revenue line, and often blames the demand instead of the two contradictory floors.
The fix is a single source of truth. Either GAM UPR serves as the authoritative floor and Prebid floors mirror it, or you manage floors centrally in Prebid and set UPR to the same values. When you aggregate demand through an SSP, the same principle applies: the SSP's floor and GAM's floor must carry the same number for the same slot and geo. Clean supply documentation supports this consistency too, because ads.txt, app-ads.txt, and sellers.json entries that match your actual SupplyChain object keep buyers bidding confidently instead of discounting for supply-path ambiguity.
Open Bidding deserves a specific check. Google's own floors for Open Bidding demand interact with your UPR floors, and a mismatch there produces the same shading conflict as the Prebid case, just harder to see because the bid stream lives inside GAM rather than in your header. Direct deals need the same audit: a direct deal with a fixed CPM competes on price in the unified auction, and a UPR floor set above the deal CPM can block your own negotiated deal from serving.
Segment Rules Deliberately, Not Endlessly
UPR earns its name through targeting. A flat floor across your whole inventory wastes the differences between a 300x600 above the fold in the US and a 320x50 banner in a low-CPM market. Size and geography alone typically explain most of the variance in bid distributions, so build your first rule matrix on those two dimensions and add others only when the data demands it.
A workable starter structure:
- One rule per ad unit size, globally, as a baseline.
- Additional rules for your top revenue geographies, with floors set from each geo's own distribution.
- Separate treatment for video formats, because VAST demand prices differently than display.
- Deal-specific floors only where a negotiated deal needs protection from open-market underbidding.
Every additional dimension multiplies the rules you maintain. If a request matches multiple rules, GAM applies the highest matching floor, so an overly specific high floor can silently override your carefully tuned general rules. Keep the rule count small enough that you can state from memory what floor applies to any given slot. When a colleague asks what floor governs the 970x250 on desktop in Germany and nobody can answer without opening GAM, the rule set has grown past the point of manageability.

Test on a Fixed Cadence and Measure What Matters
Floor optimization is a schedule, not a project. Demand shifts with seasonality, advertiser budgets, and your own traffic changes, so a floor set in January rarely stays optimal through Q4 retail spend. Pick a cadence, monthly or quarterly, and hold to it even when revenue looks fine, because flat revenue often hides a floor that stopped doing anything months earlier.
A disciplined test looks like this: change one segment at a time, hold the change for at least seven days, and compare win rate, average winning CPM, and revenue per thousand impressions against the preceding period of equal length. Move floors in steps of 10 to 20 percent rather than doubling them, because large jumps make it impossible to locate the optimum. Watch the interaction between metrics: a floor raise that lifts CPM 8 percent while dropping win rate 30 percent destroyed revenue, and a raise that changes nothing means the old floor already sat below the active bid range.
Measurement infrastructure matters as much as the tests themselves. Our analytics dashboard shows bid distributions, win rates, and revenue per segment in one place, which turns floor reviews from guesswork into a short weekly task. If you run Prebid's dynamic floor optimization, audit its outputs against GAM floors on the same cadence, because an optimizer that drifts from your UPR values reintroduces the multi-floor conflict you worked to eliminate. Document every change you make, including the date, the segment, the old floor, and the new floor, so a later revenue shift has a traceable cause instead of becoming a mystery.
How WireAds Applies Consistent Floor Logic
We manage pricing rules daily across a portfolio that spans web, app, and CTV/OTT inventory in every country where Google monetization operates, so we treat floor consistency as an operational requirement, not a preference. Our demand stack combines Prebid, OpenRTB, Google MCM, Google Ad Exchange, and direct deals from global and local brand agencies, all bidding against the same ad spaces inside our SSP. When one demand path carries a different floor than another, the auction stops reflecting true value, so we enforce a single floor number per slot and geo across every path, including direct deals.
We work CPM-based and pay Net 30, which keeps the economics legible: the CPMs you observe in reporting are the CPMs you get paid on. Because our demand sources hold high brand-quality standards with strict filtering of unwanted ads, the bid distributions we observe stay clean enough to set floors against directly, without discounting for junk-demand noise. If you want to see how this works on your own inventory, WireAds for publishers covers onboarding, reporting, and payment terms in detail.
Mistakes That Quietly Cost Revenue
Most UPR failures follow one of five patterns, and each one shows up in reporting long before anyone connects it to pricing rules:
- Copying floors from another publisher or a forum thread, then never validating them against your own bid data.
- Running conflicting floors in GAM and Prebid, so buyers shade to the lower signal and the higher layer rejects them.
- Setting a UPR floor above a direct deal's negotiated CPM and blocking your own deal from serving.
- Raising floors to chase a monthly revenue target without checking win rate, then reading the resulting fill loss as a demand problem.
- Leaving rules untouched for a year while seasonality and buyer budgets move underneath them.
Every one of these has the same root cause: floors set without reference to observed bid behavior. The auction tells you what your inventory earns; pricing rules only decide how much of that value you insist on capturing. Publishers who read the bid data, keep one floor logic across all demand paths, and adjust on a fixed cadence capture more of that value, and the discipline costs far less than the revenue it protects.


