Adgora
Guides 12 min read 2,282 words

Which Adgora Metrics Should I Use to Measure Publisher RPM and Fill Rate?

Learn which Adgora metrics should I use to measure publisher RPM and fill rate with RPM, fill rate, requests, and impressions by slice.

Adgora
On this page0%

    Adgora RPM and Fill Rate Metrics Guide

    Start with the exact reporting question you’re trying to answer

    Before you open a report, write down the question in one line. Are you checking revenue efficiency, demand coverage, or the gap between pages, geos, devices, and dates? That choice matters. A lot.

    If the goal is “which Adgora metrics should I use to measure publisher RPM and fill rate,” the answer depends on the slice. A homepage, a long-form article page, and a mobile app install landing page do not behave the same, even if they sit in the same account. One may earn more per impression. Another may simply get more eligible requests.

    Start with 1 reporting slice at a time. For example: one geo, one device class, one placement type, one 7-day period. If you mix all four at once, the number can look tidy and still mislead you.

    There is a simple habit that saves time: name the question before the chart. “Did RPM fall on mobile in Brazil last week?” is a better question than “Why is performance weird?” The first question can be answered. The second can eat an afternoon.

    Use RPM as the primary “earnings per impression” benchmark

    RPM gives you a quick read on how much revenue you earn per 1,000 impressions. That makes it the cleanest starting point for publisher performance, because it translates a large traffic stream into one compact number. It is not the whole story, but it is the first number I would check.

    The right RPM view depends on the inventory level you care about. Page-level RPM answers a page design question. Ad-unit-level RPM helps you compare one slot against another. Session-level RPM can be better when your business goal is broader, because it tells you what the visit produced, not just a single placement. Those three views can point in different directions, and that is normal.

    Here is a concrete example. A page with 40% fewer impressions can still show higher RPM than the page above it in the site tree. That does not mean the lower-traffic page is “better” in every sense. It may just have a richer audience, a different device mix, or a placement closer to visible content.

    Use RPM with a fixed date range. One week is fine for a quick check. One month is safer for pattern watching. A 2-day comparison can overreact to a campaign pause, a holiday, or a single traffic spike from one referrer.

    RPM is also the metric most people misread first. A rise in RPM can hide a drop in traffic. A fall in RPM can be offset by more impressions. The number is useful only when you tie it to volume.

    Use fill rate as the primary “served vs. requested” benchmark

    Fill rate answers a direct question: how often did Adgora serve an ad when inventory was requested? That makes it the best check for demand coverage. If RPM is the earnings lens, fill rate is the delivery lens.

    For newly added inventory, do not judge fill rate on day 1 alone. New placements often need time to stabilize, especially if the traffic source is still learning, the page is still being crawled, or the audience mix is not yet settled. A 3-day sample can be too thin to judge anything safely.

    Placement type matters too. A sticky sidebar, an in-content slot, and a footer unit do not ask the same thing from demand. One may attract faster responses because it is more visible. Another may be more selective and still earn well. That is why fill rate should be read by placement type, not just account-wide.

    If your report shows a low fill rate on a placement with only 200 requests, treat that as a small sample first. If the same pattern repeats across 20,000 requests, it is no longer a small sample story. Numbers change meaning when the denominator changes.

    Also check whether the inventory is seasonal. A back-to-school page, a holiday gift guide, or a sports event page can attract different demand windows across the month. A fill rate that looks weak on Tuesday may look normal on Saturday.

    Pair RPM and fill rate to separate demand issues from monetization issues

    The two metrics belong together. RPM tells you what the inventory earned. Fill rate tells you how often ads were actually served. Read them together and the picture gets clearer.

    Low RPM with decent fill can suggest pricing pressure, weak engagement, or a poor ad-to-page fit. The demand is there, at least enough to serve. The page still may not be delivering enough value to earn more per impression.

    Weak fill with stable RPM can point in the opposite direction. Demand shortfalls, inventory eligibility constraints, or strict placement rules may be blocking delivery, while the impressions that do serve still earn normally. That is a very different problem. It needs a different fix.

    Here is the fast test. If RPM drops and fill stays flat, look at engagement and traffic quality first. If fill drops and RPM stays flat, look at supply-side demand and inventory setup first. If both drop together, check both sides before changing anything. One metric alone will not tell the full story.

    This pairing helps you avoid false alarms. A publisher once sees RPM down 8% on a page and assumes monetization broke. Then the fill rate shows the same page gained 30% more request volume from a new geo with weaker demand. The issue was not the page alone. It was the mix.

    Add request volume and impression volume to avoid misleading conclusions

    RPM and fill rate can look dramatic when the traffic base is tiny. That is why request count and impression count must sit beside them. Without those two numbers, you cannot tell whether a change is meaningful or just volume noise.

    Request volume shows demand pressure on your inventory. Impression volume shows what actually got served. Their ratio gives you fill rate, but the raw counts explain whether the ratio is reliable. A 2-point movement on 50 requests is not the same as a 2-point movement on 50,000 requests.

    Suppose RPM rises while impressions fall. Revenue may stay flat, or even drop, depending on the size of the decline. Suppose fill rate rises while requests fall sharply. The percentage may improve, yet the account can still earn less. Those combinations matter more than the isolated percentages.

    A simple table helps.

    Metric What it tells you What to check next
    RPM Earnings per 1,000 impressions Traffic mix, placement, engagement
    Fill rate Served vs. requested inventory Demand availability, eligibility, settings
    Request volume How much inventory was asked for Traffic source, page views, device mix
    Impression volume How much was actually delivered Bid pressure, ad blockers, layout

    One more point. If volume doubles, metric movement can look smoother even when the underlying issue remains. Small samples bounce. Large samples whisper.

    Compare like-for-like segments before drawing conclusions

    A report only helps if the segments are comparable. Geo, device, ad unit, placement, and date range are the five slices I would compare first. If you skip them, you may confuse traffic mix changes with performance changes.

    Geo is the easiest place to start. A top-tier market and a lower-demand market can produce very different RPM and fill rate profiles. Device is next. Desktop and mobile often behave differently because screen space, session length, and ad viewability are not identical. Even within mobile, tablet and phone can diverge.

    Ad unit and placement matter just as much. A slot above the fold can have different demand and engagement than one buried after the third paragraph. If one unit is new and another is mature, compare them only after normalizing for age and traffic source. Otherwise, the comparison is fair in appearance only.

    Date range is often the hidden problem. Comparing Monday to a full month can distort everything. Comparing a holiday week to a normal week can do the same. Use like-for-like windows whenever possible. Seven days against seven days. Thirty days against thirty days.

    This is also where the phrase "which Adgora metrics should I use to measure publisher RPM and fill rate" becomes practical, not theoretical. The correct answer on a desktop US placement may be different from the correct answer on a mobile India page, and that difference is not a flaw in the report. It is the report doing its job.

    If you want more background on broader measurement habits, the crypto advertising, monetization & Ad-Tech guides section is a useful place to compare reporting patterns across use cases.

    Watch for measurement artifacts that can distort RPM or fill rate

    Some bad readings are not business problems at all. They are reporting artifacts. The usual suspects are incomplete date ranges, mixed inventory types, ad-block effects, caching, and counting differences between requested and served ads.

    An incomplete date range is the easiest one to catch. If the report cuts off mid-day, the last 12 hours may still be moving. Never interpret a partial day as a full day. That sounds obvious. People still do it.

    Mixed inventory types create another problem. If one report combines placements with different layouts or different traffic sources, the average can hide the truth. A direct-response page and a content page should not be judged by the same pattern unless they truly share the same setup.

    Ad blockers can lower the measured serving path even when the page looks normal to a human visitor. Caching can also distort page-level counts, especially if one refresh pattern is unusual. If your analytics and ad server numbers disagree by a noticeable margin, do not assume the ad server is wrong first. Compare the definitions first.

    Count differences can be subtle. One system may count a request slightly differently from another. One may stop at load. Another may continue to timeout. These small differences matter once you are comparing a 5% movement over 30 days.

    Build a simple decision rule for ongoing monitoring

    Use a weekly check for direction and a monthly check for confirmation. That rhythm is enough for most publishers. Daily checks are fine for active troubleshooting, but they can tempt you into reacting to noise.

    Start with RPM on Monday. If RPM moves more than your normal range, compare it with fill rate and request volume on the same slice. If RPM and fill rate both move, investigate. If only one moves, look for the source of the split. That simple rule catches most of the meaningful changes.

    Next, decide whether the change is structural or temporary. A 1-day dip after a traffic spike from one referrer may be noise. A 14-day decline across 3 geos is not noise. Treat the first as a watch item. Treat the second as a problem.

    For monthly review, pick 3 questions. Did RPM rise or fall? Did fill rate move in the same direction? Did request volume change enough to explain the difference? If the answer to the third question is yes, the metric shift may be a volume story, not a monetization story.

    This is the point where many publishers also compare Adgora performance against other monetization paths. If you work with different formats or verticals, the CPC vs CPM vs CPA guide can help frame whether the issue is pricing, demand, or conversion mechanics. That matters when one page earns from display and another from offers.

    If you are only adding one extra habit, make it this: save one screenshot of the same report each month. Twelve screenshots show trends better than memory does. Memory edits the past.

    And if you need a practical next step after reading the numbers, start with the ad tech glossary so the labels in your report stay consistent. Consistent labels save time. Confused labels cost it.

    One final detail: if you work in crypto or similar verticals, the traffic mix can swing quickly, so the same RPM and fill rate rule should be checked against category demand as well. For that kind of inventory, the crypto ad network for publishers article is a natural companion read before you change placements or chase a short-lived spike.

    Terms in this article

    Short definitions from the Adgora glossary.

    Fill rate
    The share of ad requests that returned an ad. A low fill rate usually means a floor set above what the inventory clears, or targeting too narrow fo…
    Impression
    One ad served to one user, once.
    CPC
    Cost per click — you pay only when someone clicks. The bid you set is the most you will pay for a click; the auction often clears lower. Best when…
    CPM
    Cost per mille — the price for one thousand impressions, paid whether or not anyone clicks. You are buying attention rather than actions, which sui…
    CPA
    Cost per action — you pay only when a defined action happens: a sale, a signup, a deposit. The lowest-risk model for the buyer and the highest bar…
    Bid
    The maximum you are willing to pay for a click or a thousand impressions. Distinct from budget: the bid sets your price per unit, the budget sets h…
    Conversion
    The action you are actually paying for — a sale, signup, deposit or install. Conversions are idempotent on Adgora: the same click ID and offer will…
    Landing page
    The page a click sends someone to. It has one job: continue the promise the ad made. See landing page optimization.

    Frequently asked questions

    Why should I start with a specific reporting question before opening a report?

    Starting with a one-line question helps you choose the right slice and metric, such as revenue efficiency, demand coverage, or differences across geos, devices, and dates. A focused question is easier to answer and reduces the chance of drawing misleading conclusions from mixed data.

    What does RPM measure and why is it the primary benchmark for publisher performance?

    RPM measures how much revenue you earn per 1,000 impressions. It is a clean starting point because it converts a large traffic stream into one compact earnings-per-impression number.

    What does fill rate measure and when should it be used?

    Fill rate shows how often an ad is served when inventory is requested, so it is the best benchmark for demand coverage and delivery. It should be read by placement type and with enough request volume to make the sample reliable.

    Why should RPM and fill rate be analyzed together?

    Together they help separate monetization problems from demand or inventory-setup problems. Low RPM with steady fill can point to pricing or engagement issues, while weak fill with stable RPM often suggests demand shortfalls or inventory constraints.

    Why are request volume and impression volume important alongside RPM and fill rate?

    They show whether a percentage change is meaningful or just noise from a small base. Without the raw counts, a dramatic-looking movement in RPM or fill rate can be misleading.

    Share this article

    Found it useful? Send it to someone who buys or sells traffic.

    Next step

    Ready to put this into practice?

    Launch a campaign or monetize your traffic on Adgora — crypto payments, real-time stats, no lock-in.