For months I had exactly one number for ad health: the fill rate in the AdMob dashboard. It said 94%. It was technically true. It was also useless.
The dashboard measures the wrong thing

AdMob's numbers are aggregated across every device, every region, every network state. Averages are where outliers go to hide. Two weeks ago my own tracker — the one I built because I stopped trusting the aggregate — showed this for a single banner unit:
- Dashboard: 94% fill, steady revenue, no alerts
- Per-device reality: one cluster of devices with 40+ shows and under 15 loads
Nobody lied. The dashboard counts successful fills. My tracker counts what the user's device actually experienced. The gap between those two definitions is where revenue quietly leaks.
The three numbers I check before anything else
- Show rate — impressions the SDK thinks it served
- Load rate — what actually rendered on a real device
- Timeouts — the silent killer; a slow fill is a lost fill
// the alert that caught the bad unit
if ($device['shows'] > 30 && $device['loads'] / $device['shows'] < 0.4) {
flag($device['id'], 'load-failure cluster');
}
A healthy app sits around 92%+ load-per-show. Below that, something is wrong with your network config, your placement, or your traffic — and the aggregate dashboard will never tell you which.
What the cluster actually was
[TODO: replace with your real story — was it a bad mediation config? A specific device family? Fraud? One paragraph of ground truth is worth ten paragraphs of theory.]
The uncomfortable lesson: the unit that looks fine in aggregate can be broken on the exact devices you're paying to acquire.
What this changed
Stop asking "what's my fill rate?" Start asking "which devices are not getting ads, and why?"
The first question takes one glance at a dashboard. The second one takes a tracker that logs show/load/timeout per device — which, full disclosure, is a big part of why AppSentry exists.
Next post: the kill-switch story — how I pushed a fix to every install overnight without waiting for Play Store review.
Numbers above are from my own console. Swap in your own screenshots — a blog post with real graphs beats a hundred posts with stock ones.