BeeLab
Ad Layout A/B Testing Engine
Stop guessing where ads earn. Measure it.
Every ad layout on your site is a hypothesis somebody had once and never tested. BeeLab splits your traffic, runs the alternative, and tells you which one actually earned more — while watching bounce rate and Core Web Vitals so a "winner" that costs you audience gets killed automatically.
Experiment 17 · below-nav placement
hindinews.example · article template · 14 days
Variant A · Control
Variant B · Below-nav
WINNER| Metric | A | B |
|---|---|---|
| RPM | ₹61 | ₹74 |
| Viewability | 54% | 69% |
| Bounce rate | 42% | 39% |
| Pages/session | 1.7 | 1.9 |
| CLS | 0.04 | 0.01 |
B won on revenue and on both guardrails. Had bounce rate gone the other way, the engine would have killed it regardless of the RPM.
The problem
What this is costing you right now
Layout decisions get made by opinion
Someone senior once said the leaderboard should go at the top, and four years later it is still there.
More ads does not mean more money
Adding units raises revenue per pageview and lowers pages per session at the same time.
The best placements are counter-intuitive
The unit just below the nav frequently beats the top leaderboard, because readers scroll past the header before their eyes settle.
How it works
What BeeLab actually does
No black box. Here is the whole mechanism, step by step.
BeeLab — how it works
-
1
Split the traffic
Visitors are bucketed 50/50 by a deterministic hash, held sticky by cookie. The same reader always sees the same variant, so you are measuring layouts rather than measuring confusion.
-
2
Define the variants
A variant is a JSON layout definition: which units exist, where they anchor, what sizes they take, how dense they are at each breakpoint. Changing a layout is editing a definition, not shipping a code release.
-
3
Measure everything, not just revenue
RPM, viewability, CTR, CLS, LCP delta, bounce rate and pages per session are tracked per variant. Revenue in isolation will happily lead you off a cliff.
-
4
Check significance before calling it
Sequential testing with a visible significance readout, plus enforced minimum sample size and runtime. You cannot stop the test on day two because the number you wanted appeared — that rule is in the engine, not in a document.
-
5
Promote the winner, queue the next hypothesis
The winning variant becomes the new baseline and the next test starts against it. Layout optimization is a ratchet, not a project — each win becomes the floor for the next one.
- Sticky 50/50 split deterministic hashing
- 7 metrics tracked not just RPM
- Auto-kill guardrails bounce and CWV
- Significance enforced no calling it early
In context
Where BeeLab sits on your page
A layout variant moves this unit — and BeeLab measures whether that actually earned more, including what it cost in bounce rate.
Both variants serve the same content. Only ad placement changes.
Specifications
Full technical specification
Publishers compare specifications, not adjectives. Everything is here, including what depends on partners we do not control.
Experiment design
| Assignment | Deterministic hash bucketing, consistent per visitor across sessions and devices where a cookie survives. Multi-variant supported (A/B/n), not just two-way splits. |
|---|---|
| Variant definition | JSON layout schema: units, positions anchored via CSS selectors, sizes, and density rules per breakpoint. Mobile and desktop layouts are defined independently because they are genuinely different products. |
| Metrics per variant | RPM, viewability %, CTR, CLS, LCP delta, bounce rate, pages per session. Revenue and experience metrics sit on the same screen so you cannot look at one without the other. |
Guardrails & statistics
| Guardrail metrics | A variant is auto-killed if bounce rate rises or Core Web Vitals degrade past your thresholds — even if it is winning on revenue. Revenue that costs you audience is a loss with a delay on it. |
|---|---|
| Statistics | Sequential testing with a significance display, enforced minimum sample and minimum runtime. No p-hacking: the engine will not let you declare a winner it cannot defend, and a full weekly cycle is required because weekday and weekend readers behave differently. |
Hypotheses & reporting
| Starter hypothesis library |
Ready-made tests to begin with: below-nav unit vs top leaderboard, in-content density ladder, sticky sidebar (desktop), anchor unit (mobile), and 300x250 vs 336x280. You do not have to invent your first five experiments.
|
|---|---|
| Reporting | Experiment timeline, winner history, and a cumulative uplift ledger — what every test since launch has added, so the programme can be evaluated rather than believed. |
| Scope | Tests can be scoped per template, per section or site-wide. Your article pages and your homepage should almost never share a layout test. |
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 RPM uplift from a systematic layout testing programme benchmark 1
One test might move RPM 3%. Eight tests, each building on the last winner, is where the range comes from.
Without BeeOS
- Layout decided by
- Opinion
- Metrics watched
- RPM only
- A losing variant
- Runs for years
- Cumulative gains
- Untracked
With BeeOS
- Layout decided by
- Measurement
- Metrics watched
- 7, incl. bounce + CWV
- A losing variant
- Auto-killed
- Cumulative gains
- Uplift ledger
Expected difference
+10–25% RPM benchmark 1
Accumulated across a series of tests, not from one layout change.
+10–25%
RPM uplift reported from systematic layout optimization benchmark 1
Accumulated across a series of tests, not from a single change.
~2 weeks
Typical time to a decisive result
Traffic-dependent. Lower traffic means longer tests, not weaker standards.
7 metrics
Tracked per variant, including experience guardrails
RPM, viewability, CTR, CLS, LCP, bounce, pages/session.
Being straight with you: Layout uplift accumulates rather than arriving at once. A single test might move RPM 3%. Eight tests over a couple of quarters, each building on the last winner, is where the reported ranges come from. This product rewards patience and punishes the urge to call a result early.
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
BeeLab — 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.
BeeFloor
Dynamic Price Floor Engine
Never sell a ₹100 impression for ₹21 again.
BeeFresh
Smart Ad Refresh (Engagement-Gated)
One visit. Multiple honest impressions.
BeeVitals
Viewability, Speed & Core Web Vitals Optimizer
Fast pages. Visible ads. Premium bids.
Be first in line for BeeLab
BeeLab 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.