Why this matters to you. Understanding the funnel tells you exactly what makes campaigns skip your slot — and every skipped campaign is a slot filled by a lower bid or a house ad. Most fill problems are an eligibility problem, not a demand problem.
Phase 1 — The eligibility funnel
Every campaign must clear every gate below to enter the auction. The first three are hard set-intersections resolved instantly from live in-memory pools; the rest are per-campaign checks.Country, device, and ad size are hard AND filters — a campaign that doesn’t target the visitor’s country and device and your slot size can never serve, no matter how high it bids. This is why supporting more ad sizes directly increases how many campaigns compete for your inventory.
What each gate does
Phase 2 — The revenue auction
Every campaign that clears the funnel competes in a weighted-random revenue auction. This is not a highest-bid-wins auction and not a pure random pick — it’s deliberately in between. Each campaign gets a weight, and the winner is drawn at random with probability proportional to its weight:weight = remaining budget × expected value per impressionwhere expected value per impression is the campaign’s effective CPM ÷ 1000. For click-goal (CPC) campaigns, the bid is converted to an equivalent CPM using an assumed click-through rate of 1%. (A campaign with missing bid data still competes — its weight simply degrades to remaining-budget-only.)
Why weighted-random instead of top-bid?
Higher value wins more — not always
A campaign with a richer bid has a proportionally higher chance to win, so valuable demand is favored. But it doesn’t win every time, which keeps a single advertiser from monopolizing your inventory.
Budget pacing is built in
Remaining budget is a direct multiplier. As a campaign spends down, its weight falls and it naturally yields to fresher demand — spreading spend across the whole day instead of front-loading it.
After a winner is drawn
The winner’s destination URL is validated (it must be a realhttp/https link). If it’s malformed, that campaign is dropped and the auction re-draws among the rest — paid demand is never skipped in favor of a house ad just because one winner had a bad link. Only if every eligible campaign fails does the slot fall through to house fill.
Frequency capping — why the same ad stops showing
To prevent ad fatigue, AdXensor caps how many times a single visitor sees the same campaign within a rolling window — a configurable platform limit. Once a visitor hits the cap for a campaign, that campaign is filtered out of their auctions (other visitors are unaffected).Counts are tracked per visitor per campaign, incremented only on real, rendered impressions — never on bot traffic, and never on house ads. House and always-fill banners are exempt from frequency capping, which is part of why your slots stay filled.
Guaranteed fill — your slot is never blank
If no paid campaign qualifies (none matched, all frequency-capped, or all had invalid links), AdXensor walks a fallback chain so the slot still earns:House creative
If an admin has uploaded a house creative for your slot’s size, it serves.
Always-fill banner
Otherwise, for standard IAB sizes (
300x250, 336x280, 728x90, 320x50, 300x600), a built-in AdXensor cross-promo banner fills the slot. It’s an inline SVG — no external assets, no extra latency.Empty (rare)
Only if the size is non-standard and no house creative exists does the slot return empty. Using standard IAB sizes avoids this entirely.
The whole strategy in one picture
Next: Traffic Quality & Scoring
Winning the auction is only half the story — the impression still has to be valid to be counted and paid. See how AdXensor’s fraud shield and reputation system work.