AdSense Fill Rate Basics for Small Blogs
Fill rate in AdSense maps to Coverage: matched ad requests divided by total requests. Learn the official formula, honest limits, and what to check when fill drops.

Bloggers say fill rate when they mean “how often did my ad slots actually get an ad back?” In AdSense Reports, Google names that ratio Coverage—not a separate mystery column invented in forums. Fill rate language maps to Coverage math: what share of ad requests returned at least one ad during the dates you selected. It is not earnings, not Page RPM, and not proof that Google dislikes your niche.
Metric neighbors: AdSense coverage report basics (column reading on small sites), AdSense unmatched ad requests basics (where unfilled asks show up), and AdSense ads not showing what to check (live blank units after account-level fill drops). Official sources: Coverage · Troubleshoot ad coverage issues · Unmatched ad requests · Troubleshoot common AdSense earnings issues.
Fill rate (Coverage) = (Ad requests that returned ads ÷ Total ad requests) × 100 per Google Help. Read it over stable windows; pair with pageviews before you rewrite your theme.
Disclosure: Educational AdSense reporting only. We do not publish niche fill benchmarks, guarantee earnings, or tie fill percentages to RPM targets. Help examples teach math—not your forecast.
Table of contents
- Fill rate language versus Coverage metric
- Official Coverage formula
- What fill is actually measuring
- Fill versus RPM and impressions
- Unmatched requests and fill gaps
- Opening Coverage in Reports
- Reading fill on a small blog
- When fill drops but traffic looks stable
- Google’s troubleshooting order
- Honest limits on what fill can tell you
- Mistakes that waste the metric
- FAQ
- Use fill as diagnostics, not a scoreboard
Fill rate language versus Coverage metric
Search forums mix fill rate, fill, and coverage loosely. In AdSense Help, the defined report metric is Coverage. When an owner asks you to “raise fill rate,” translate that to raise the Coverage percentage on ad requests—subject to policy, demand, and layout constraints—not to “force more dollars per thousand pageviews,” which is a different report family.
Keeping vocabulary straight prevents bad exports: you want the Coverage column in CSVs, not a homemade ratio built from unrelated Analytics fields.
Official Coverage formula
Google’s Coverage Help article states:
Coverage = (Ad requests that returned ads / Total ad requests) × 100
Help’s illustration: three ad units on a page generate three ad requests. If two units show ads and one shows no ad, page coverage is 66.67%. That teaches the math—it is not a benchmark your blog must hit.
Help also notes coverage helps identify sites where AdSense could not provide targeted ads for some requests. Higher coverage means more requests received an ad back in that report slice; lower coverage means more unfilled asks.
Google documents Coverage under the Advanced metric family in Reports. If you cannot find the column immediately, search the metric picker for Coverage rather than assuming the homepage chart shows fill by default.
What fill is actually measuring
Fill sits between traffic and monetized impressions.
Each ad unit on a template creates ad requests when the page loads and the ad stack runs. Coverage aggregates whether those requests received an ad—not whether the visitor was valuable, not whether you crossed payment threshold, and not whether Policy center is clean (though policy can restrict serving indirectly).
Why that matters: you can hold pageviews steady and still see fill fall when demand softens, blocking rules tighten, consent flows change, or Google applies ad serving limits during quality reviews. Fill explains match on requests, not why RPM moved.
If I were reviewing a first-year blog, I would log fill beside pageviews weekly—not screenshot a percentage alone on a 50-view day.
Fill versus RPM and impressions
| Idea | Question it helps | Common confusion |
|---|---|---|
| Coverage (fill) | What share of requests returned an ad? | Treating fill as dollars |
| Impressions | How many ads began downloading? | Expecting impressions = requests when fill < 100% |
| Pageviews | How many ad-displaying pages loaded? | Blaming fill when traffic fell first |
| Page RPM | Estimated earnings per 1,000 pageviews? | Expecting high fill to guarantee high RPM |
Coverage can look stable while impressions fall if you removed ad units—each remaining request might still fill. Page RPM can move while fill looks flat when bid levels change. Read each column for its layer.
Deep rate reading: Page RPM basics and CPM vs RPM. Request chain detail: ad requests vs impressions. This page stays on fill percentage.
Unmatched requests and fill gaps
When coverage is below 100%, some requests return no ad. Help’s Unmatched ad requests article explains reporting rows that surface those asks—often when you break down by ad unit or targeting types.
Think of Coverage as account- or slice-level fill and unmatched rows as where unfilled asks clustered. Coverage might look acceptable while one sidebar unit contributes disproportionate unmatched share—that unit deserves layout or blocking review, not a site-wide content rewrite.
Cluster reading: unmatched ad requests basics and coverage report basics.
Opening Coverage in Reports
Practical approach:
- Sign in to AdSense → Reports.
- Pick a date range long enough to dampen noise (often 7–28 days on small sites).
- Open the metric picker → locate Coverage (Advanced metrics in Help).
- Add dimensions—site, ad unit, platform—only after account-level fill makes sense.
- Export if you compare month over month.
Menu paths shift between UI versions; metric names in Help remain the anchor.
Reading fill on a small blog
Small blogs share three constraints: low pageviews, few ad units, and high emotional weight on each unfilled request.
Sample size. Forty pageviews might mean a dozen ad requests. Two unfilled requests can print a scary fill percentage that a 28-day window smooths.
Unit count. More units mean more requests per pageview. Template changes alter the denominator even when traffic is flat.
Local tests lie. Ad blockers in your browser cause “everything is blank” panic that reports may not replicate for all visitors. Confirm fill in Reports, not only in your Chrome profile with extensions.
Sane habit: compare fill week over week, note template edits on the same calendar, and read pageviews on the same row before treating fill as the lead story.
When fill drops but traffic looks stable
Google’s Troubleshoot ad coverage issues lists reasons coverage may decline while traffic does not:
- Ad serving limit during traffic quality assessment or invalid traffic concerns.
- ads.txt misconfiguration or missing file reducing eligible demand.
- Policy issues, regulatory issues, or crawler errors in Policy center.
- Invalid traffic questions that restrict serving.
- Blocking controls that remove too many categories or competitors.
- Ad setup choices—fixed sizes versus responsive, placement, excessive units.
That list is why fill drops belong in a trace, not a single superstition. Start where Help points—Policy center, ads.txt, serving limits—then use ads not showing for blank slots you can reproduce.
Google also notes fixed-size units may have a smaller eligible ad pool than responsive units—fill and earnings can reflect implementation choices. Changing formats is a strategy decision after diagnosis.
Google’s troubleshooting order
When earnings move and fill looks like the suspect, Help’s common earnings issues table still recommends checking page views, then coverage, then impressions when diagnosing declines.
That order prevents rewriting ad code when traffic fell first, or chasing RPM myths when fill collapsed on a stable template for policy reasons.
Honest limits on what fill can tell you
Fill does not tell you:
- Final payment amount (estimated earnings and settlements differ).
- Guaranteed RPM tomorrow (demand and geo mix change).
- Whether content quality is “good enough” for AdSense (policy and site readiness are separate owners).
- A universal target percentage every niche should hit (Help teaches ratio math with examples—not league tables).
We do not claim “80% fill means $X RPM” or cite fabricated dashboards. Use fill to ask whether requests are matching, then use traffic and rate columns for the business question you actually have.
Mistakes that waste the metric
Treating fill as earnings. Coverage is a percentage on requests; bank deposits follow a different pipeline.
Panicking on one daily cell. Widen the window on low traffic.
Adding ad units until fill “looks better.” Clutter can hurt UX and policy-safe layout without fixing unmatched root causes.
Ignoring unmatched breakdowns. Account fill can mask one broken unit.
Skipping pageviews on the same export. Traffic drops mimic fill emergencies.
FAQ
What is fill rate in AdSense?
Common language for how often requests returned an ad—officially Coverage in Reports per Help.
Is fill rate the same as Coverage in AdSense?
Yes for reading purposes; Coverage is Google’s labeled metric.
Is fill rate the same as Page RPM?
No. Fill is request match; Page RPM scales estimated earnings per thousand pageviews.
Does low fill always mean broken ad code?
Not always—see Help’s coverage troubleshooting list and the ads-not-showing owner for live blanks.
What are unmatched ad requests?
Requests that returned no ad; they still count as asks without impressions.
Why does fill swing on low-traffic days?
Small denominators exaggerate percentages—prefer longer windows.
Should I chase 100% fill on every ad unit?
No guaranteed universal target; diagnose layout, blocking, and policy before stacking units.
Where is official Help for fill and coverage?
Coverage, troubleshoot coverage, unmatched requests, and earnings troubleshooting articles.
Use fill as diagnostics, not a scoreboard
Start from Coverage Help, connect to coverage basics and unmatched basics, and open ads not showing when slots are blank—not merely unmatched in one breakdown. Fill tells you how often asks matched; it does not replace honest traffic work, policy hygiene, or reading RPM with the right denominator— and it never promises a specific RPM on your site.
Keep learning
More guides in the same topic lane.
PDF to Text or PDF to Word: Which Job?
Need copy-paste plain text from a PDF or an editable Word file? Choose PDF to Text vs PDF to Word before upload—format, cleanup, and live tool links.
JPG to PDF or Protect PDF: Which Job First?
Photos still need a PDF packet, or the PDF only needs a password? Route JPG stacks vs Protect PDF before you lock the wrong file or skip the build step.
GSC Page Indexing or Sitemaps Report: Which First?
Page indexing explains why URLs are in or out of Google search. Sitemaps checks whether Google read your XML file—use this guide to pick the right GSC report.