Floor and eCPM work decided by revenue per daily active user on a user-level split, with unfilled impressions counted as a cost.
About this service
On Italian traffic an interstitial prices at roughly a quarter to a third of the same placement on United States traffic, and no floor you set will change that. A floor decides how much of the demand curve you decline, not what the demand is worth. So the number that settles every floor decision in this engagement is revenue per daily active user, measured on a user-level split, and never eCPM, which rises reliably every time you refuse enough impressions.
What we tune:
Floors are set per cohort of country, platform and placement, and we keep the cohort count low enough that each one collects enough impressions to be read inside a fortnight. In a bidding-first stack the static floor has a narrow job: it is a reserve against the bidders under-pricing a market, and a price the non-bidding tail has to beat. We tune both, along with the ladder for network-sold inventory where MAX and AdMob still run one.
Test protocol:
One variable per cycle, fourteen days, user-level split rather than day-over-day comparison. We calculate the impressions each cohort needs before the cycle starts and skip the cohorts that cannot reach it. A floor test on 4,000 daily impressions in a small market is a coin toss with a report attached. Unfilled impressions are counted as a cost in the read, including the session effect: a refused impression is not only lost revenue, it changes what the next request in that session sees.
Seasonality:
The post-Christmas price drop on European inventory runs around thirty percent and arrives whatever you do. Floors set in December and left untouched throttle fill through January and February. Part of the retainer is the January reset, and if you only ever hire us for one month, hire us for that one.
What a retainer month looks like:
One test cycle designed and read, floors adjusted, a check on network-level discrepancies against your impression-level data, and a one-page note saying what moved, what it was worth in revenue per daily active user, and what is being tested next. No dashboard. If the month produced nothing, the note says the month produced nothing.
What we refuse:
Third-party automatic floor optimisers that will not show their method. Revenue share on the income these decisions produce. Raising ad load as a lever, which is the fastest way to move ARPDAU and the slowest to undo once retention answers back sixty days later. And we do not report eCPM as a headline; it appears in the working, next to fill, where it belongs.
What is not included:
Mediation implementation, new network onboarding, waterfall-to-bidding migration, and creative. Those are separate pieces of work, and folding them into a floor engagement makes both unreadable, because you can no longer tell which change moved the number.
Who this is not for:
Apps under roughly 50,000 daily active users, where a fourteen-day cycle will not resolve and your money is better spent on the product. Publishers whose ad revenue is their only revenue, since the trade being managed here, price against fill against retention, has no second side to weigh it against. And anyone who needs a number to go up this month.
Data we need:
Impression-level ad revenue in your own warehouse or MMP with at least thirty days of history, carrying country, platform, placement, network and the precision flag. Access to the MAX and AdMob accounts with permission to change floors rather than only to read them.
The first cycle:
Usually an audit rather than a change: where the current floors came from, which of them refuse more revenue than they defend, and which cohorts carry too little traffic to be worth touching. The recommendation is often to delete floors rather than tune them, and that is a finished piece of work, not a preamble to one.