BeeFloor
Dynamic Price Floor Engine
Never sell a ₹100 impression for ₹21 again.
A price floor is the lowest price you will accept for an impression. Most publishers set one number and leave it there for a year. BeeFloor sets a different floor for every meaningful slice of your traffic — country, device, ad unit, size, hour, day type — and moves each one as the market moves.
Floor vs top bid · 24h
hindinews.example · in-content · 🇮🇳 IN
Active segment rules · 1,284 total
- IN · mobile · 20:00–23:00
- ₹74
- IN · mobile · 02:00–05:00
- ₹11
- IN · desktop · weekday
- ₹38
- US · desktop · night
- ₹95
The problem
What this is costing you right now
A static floor leaks money in both directions
Set it too low and buyers bid-shade straight down to it — you have handed them your reserve price.
One floor cannot fit US-desktop-evening and IN-mobile-afternoon
The same ad unit is worth several times more to a buyer at 9pm on a US desktop than at 3pm on an Indian mid-range Android.
Manual GAM pricing rules do not scale past a handful
Unified Pricing Rules work — as long as a human maintains them.
How it works
What BeeFloor actually does
No black box. Here is the whole mechanism, step by step.
BeeFloor — how it works
-
1
Collect every bid
BeeBid streams the full bid log — every bidder, every price, every loss — into the BeeOS data pipeline. Floor optimization is not guesswork, it is a reading problem: the answer to "what would buyers have paid?" is already in your own auction data.
-
2
Segment the traffic
Bids are grouped by geo × device × ad unit × creative size × hour × day type. Each of those slices has its own demand curve, and treating them as one average is exactly the mistake a static floor makes.
-
3
Compute the optimal floor per segment
For each segment, set the floor just below the expected top bid — high enough that buyers cannot shade beneath your inventory's real value, low enough that the impression still clears. The gap between those two points is the entire product.
-
4
Push the floors live
Floors are written to the Prebid Floors Module as JSON and synced to Google Ad Manager Unified Pricing Rules, so the same price discipline applies in the header auction and in the ad server. A floor that only exists in one layer is a floor buyers can walk around.
-
5
Re-learn overnight
Every night the model reads the last day of bids and adjusts. Demand moves — festival season, quarter-end budget flush, a buyer pulling out of a geo — and a floor set last quarter is a floor set for a market that no longer exists.
- Floor per segment geo × device × hour
- Relearns nightly demand moves, floors move
- Fill guardrails auto-rollback on drop
- Full audit log every change, and why
In context
Where BeeFloor sits on your page
A floor is attached to this slot before anyone bids — priced for this exact geo, device, hour and size.
The same floor logic applies in both Prebid and Google Ad Manager, so buyers cannot walk around it.
Specifications
Full technical specification
Publishers compare specifications, not adjectives. Everything is here, including what depends on partners we do not control.
Learning engine
| Phase A — at launch | Deterministic rules engine. Floors are looked up per segment from your own bid history, with manual overrides and hard safety rails (min/max) you control. Explainable by design: you can always see why a floor is what it is. |
|---|---|
| Phase B — after ~60 days of data | Gradient-boosted per-segment bid prediction, retrained nightly, with champion/challenger testing so a new model has to beat the current one on live traffic before it takes over. We do not start with ML because with two weeks of bid logs a model is just an expensive way to overfit. |
| Signals used | Country, region, device, OS, ad unit, creative size, hour of day, weekday/weekend, referrer class (search / social / direct), and the slot's own viewability history — a slot nobody sees should not carry a premium floor. |
Pricing strategy
| Floor strategies |
revenue-max (default), fill-protect for inventory where an unfilled impression is a visible hole, and hybrid with per-unit selection so your homepage leaderboard and your archive sidebar can follow different rules.
|
|---|---|
| Anti-bid-shading logic | A small randomized slice of traffic explores floors above and below the computed optimum. This keeps buyers honest — a perfectly predictable floor is one an algorithmic buyer learns to sit exactly on — and it is how the engine keeps discovering what your inventory is really worth. |
Integration & safety
| Integration | Prebid Floors Module JSON plus Google Ad Manager Unified Pricing Rule sync. Both layers, one source of truth. |
|---|---|
| Guardrails | Automatic rollback if fill rate drops more than a configurable threshold, plus a full audit log of every floor change: what changed, when, why, and what happened to revenue afterwards. |
| Reporting | Floor-vs-clearing-price distribution per segment, so you can see where you are leaving money on the table and where you are pricing yourself out of the market. |
Some capabilities depend on third-party approvals and platform policies that are not ours to promise. Where that is the case, the spec above says so explicitly.
Expected impact
What the industry reports
Every number below is an industry benchmark published by a third party. BeeOS has not shipped, so none of these are results we have produced.
Expected incremental yield from segment-level floor optimization benchmark 1
Needs competing demand to matter. A floor with one bidder is just a way to lose the impression.
Without BeeOS
- Floors maintained
- 1 static
- Floor at 3am
- ₹45 — kills fill
- Floor at 8pm
- ₹45 — leaves money
- Bid shading
- Unchecked
With BeeOS
- Floors maintained
- 1,284 adaptive
- Floor at 3am
- ₹11
- Floor at 8pm
- ₹74
- Bid shading
- Randomized exploration
Expected difference
+5–15% incremental benchmark 1
Incremental on top of what you already earn — this is not the same money counted twice.
+5–15%
Incremental yield from floor optimization programs benchmark 1
On top of whatever your current setup earns — this is not the same money twice.
100s–1000s
Adaptive rules run by publishers doing this seriously benchmark 2
Which is why it has to be automated. Nobody maintains that by hand.
2–4 weeks
Before floors are tuned to your traffic
The engine needs to watch your own auctions before it can price them.
Being straight with you: Floor optimization is incremental, not transformational — it is the difference between selling well and selling optimally. It compounds with BeeBid rather than competing with it: more bidders means a denser bid distribution, which means the floor can be placed more precisely. Running floors without competition is pricing against yourself.
Works with
Fits into the stack you already run
Platforms BeeOS integrates with — not customers, partners or endorsements.
- Google AdSense
- Google Ad Manager
- AdX (via partner)
- Prebid.js
- Amazon APS
- PubMatic
- Magnite
- Index Exchange
- Sharethrough
- Sovrn
Glyphs are generic shapes, not brand logos — these are platforms we integrate with, not endorsers.
Questions
BeeFloor — frequently asked
Module 1 · Yield Engine
The rest of the module
Squeeze every rupee out of the ad requests you already serve — competition, pricing, repetition, placement and speed.
BeeBid
Hybrid Header Bidding Wrapper
Make every impression fight for its price.
BeeFresh
Smart Ad Refresh (Engagement-Gated)
One visit. Multiple honest impressions.
BeeLab
Ad Layout A/B Testing Engine
Stop guessing where ads earn. Measure it.
BeeVitals
Viewability, Speed & Core Web Vitals Optimizer
Fast pages. Visible ads. Premium bids.
Be first in line for BeeFloor
BeeFloor is under active development. Early-access publishers get priority onboarding, founder-level support on WhatsApp, and locked-in launch pricing.
No spam — we write only when something real ships.