Skip to main content

Low Revenue

Revenue dropped, or it's lower than you expect. This is an isolation problem: the number is a product of several layers, and the fix is different for each. Work top-down — localize the layer first, then open the runbook for that layer.


The five suspects

Revenue breaks down like this:

Revenue = Page Views × Ads per page × Fill Rate × eCPM ÷ 1000

A drop in the total traces back to one of five layers:

LayerWhat movedWhere it shows
TrafficFewer Page Views / SessionsMonetization → Traffic tab
SupplyFewer impressions per page, or Fill Rate downMonetization → Supply tab
DemandeCPM down, a bidder winning lessMonetization → Demand tab
ExperimentOne variation is dragging the averageMonetization → Performance tab, broken out by Experiment
ReleaseA config change flipped somethingRelease history + the layer it touched

The goal of triage is to decide which one before you change anything.


Step 1: Scope it

Pin down the shape of the drop before diagnosing — it eliminates whole layers for free.

QuestionWhat the answer rules in / out
When did it start?A sharp step down on a specific day points at a release or experiment; a gradual slope points at traffic or market conditions.
How big?Day-to-day swings of ±10–20% are normal noise. Investigate a drop over ~30% or a sustained multi-day decline.
All slots or some?Isolated to specific slots/pages → supply or a layout change. Across the board → traffic, demand, or a global release.
All demand or one bidder?One bidder cratering → demand. Everyone down together → traffic or a global change.
All devices/countries or one?A single segment moving points at traffic-mix or a targeting change.

Use the date range and Breakout by controls on each dashboard to answer these. There's no side-by-side compare toggle — adjust the date range and read the trend across it, or ask the AI Assistant to compute a period-over-period difference.


Step 2: Did something change at that time?

Before walking the metrics, check the two fastest explanations — a deliberate change you can point at.

  • A release. Open your release history (Wrapper → Releases). If the drop starts at a deploy, that's your prime suspect — compare the deployed config to the previous known-good one. If it lines up, roll back and confirm recovery before digging further.
  • An experiment. On Dashboard → Monetization, filter or break out by Experiment. Charts like eCPM by Experiment and Session RPM by Experiment show each variation separately. If a running experiment's variation is below control, the experiment is diluting your average — that's expected while it runs, but if a variation is badly underwater, end it and ship the control.

If a release or experiment explains the timing, you're done isolating — act on it. If not, walk the factors.


Step 3: Walk the factors, top to bottom

Take the layers in order. The first one that moved is where the revenue went.

Traffic — did Page Views drop?

Dashboard → Monetization, Traffic tab. Check Traffic Trend (Page Views, Sessions, Users). If Page Views fell and everything downstream is stable, this is not an ad problem — it's SEO, content, or a marketing change. Your ad setup is fine. Use Geographic Distribution and Breakout by Device Type / Browser to see whether a specific source dropped.

Supply — same traffic, fewer impressions?

Dashboard → Monetization, Supply tab. If Page Views held but impressions fell, or Fill Rate Trend dropped, the issue is between the page and the auction:

  • Fill Rate down → bids aren't clearing. Check whether floors are too high (Floor Hit Rate by Page, Price Floor vs RPM Optimization), a partner went dark, or the wrapper Auction Timeout is too short.
  • Impressions per page down → slots may have fallen out of a layout, or a release changed layout targeting. Break out by Ad Slots, Layouts, or Pages to find where. Run a slot audit on the affected slots.

Demand — same impressions, lower eCPM?

Dashboard → Monetization, Demand tab. If impressions held but eCPM fell, a bidder is the story. Demand Trend by Seat and Auction Competition show per-seat contribution; watch Win Rate, Response Rate, Timeout Rate, and per-seat eCPM. A seat whose win rate or response rate cratered, or whose timeout rate spiked, is dragging revenue. Work it with the bidder-health runbook.


Step 4: Attribute within the layer

Once you know the layer, break the metric down until you hit the specific slot, seat, device, page, or country responsible. Every dashboard has a Breakout by control for this. Attribution turns "demand is down" into "seat X's win rate dropped on mobile after Tuesday's release" — which tells you exactly what to fix.


Step 5: Act

You isolated…Do this
A release caused itRoll back to the last known-good, confirm recovery, then re-approach the change more carefully
An experiment variation is underwaterEnd the experiment, keep the control
Fill Rate / floorsLower over-aggressive floors; see Floors
A slot fell out of a layoutRe-add it; slot audit
A bidder degradedBidder-health runbook
Traffic droppedNot an ad issue — hand off to SEO/content/marketing
Nothing changed on your sideLikely market/seasonal — see below before escalating

Before you conclude "something's broken"

Some drops are real and expected. Rule these out so you don't chase a non-incident:

  • Seasonality. Q4 is the annual peak (holiday budgets); Q1 is the trough (budget resets); weekends often run lower. Compare to the same period last year, not last week.
  • Traffic mix. A shift toward lower-value geographies or devices lowers blended eCPM without anything being wrong. Geographic Distribution and device breakouts show this.
  • Normal noise. Day-to-day ±10–20% and week-to-week ±10–15% are within range for most sites.

Rough benchmarks (they vary widely by vertical and geo):

MetricTypical range
eCPM$1–5
Fill Rate75–95%
Viewability50–70%

Let the AI Assistant run it

The Assistant follows this same isolation flow and can do the attribution math for you — "Why did revenue drop last week?", "Which bidder is underperforming?", "Compare this week's revenue to last week and tell me what moved." It reports what changed, when, and by how much, with the evidence behind each claim. See the AI Assistant guide.


Escalation

If you've isolated the layer but can't resolve it — or can't isolate it at all — contact support@animaadtech.com. Include: when it started, the scope (which slots/seats/segments), which layer you've ruled in or out, and what you've already tried.