Fill Rate in Ad Monetization

Published by Digital Limbo on

When we look at rewarded video KPIs to understand how we are doing with ad monetization, it is normal to dwell on eCPM, revenue and impressions.

There is, however, one metric which is very important and improvable without too many complications: fill rate.

In general, we calculate fill rate as the percentage of requests filled with an impression (impressions/requests), but how this metric is defined can vary from one ad network or mediation to another.

For this reason, it’s important to highlight the distinction between user request and system request: depending on which one we take into consideration, the fill rate can be substantially different.

User request: it is counted when a user is interested in the reward and clicks on the actual button to watch a video ad.

System request: it is counted when the mediation SDK is triggered (it can be when the app opens) and a request to pre-cache a video is sent to the mediation and then from the mediation to the networks, until it is answered with a fill.

As you can see, in the case of a system request, even if an advertisement is pre-cached, it may never be shown.

Imagine that the app unlocks the possibility to watch ads only after three days from the install or after level 10. What happens if the user plays only for two days? Or if she/he only reaches level 9?

If the fill rate is based on system requests, we have an indicator that, technically, an ad is ready to be displayed. However, we won’t precisely know how many of those ads will be requested by our players.

For example, Admob uses the terms match rate (number of times an ad is matched in response to a system request) and show rate (how many matched ads are displayed to the user), but they can be misleading as they are not based on actual user requests.


At the end of the day, you want to make sure that the fill rate based on user requests is close to 100%. If your mediation platform is not giving you this metric, you can either set up an in-app event for user request and calculate it internally as impressions/user requests or make sure the SDK is triggered just before a user is about to have the option to watch an ad.

Getting this KPI right will help to make decisions on your ad monetization: do I need to add any other adapter to my stack? Do I need a specific network to help fill in certain markets?

An increase in fill rate will not only lead to less user complains, but mainly to a lift in your ad revenue.




Mahbuber Rahman · January 12, 2020 at 18:59

I am kinda tensed about admob app ad request and impression. My today ad request 3.91K and impression 1.81K. match rate is 99.36% but fill rate about 40% . How can i increase it?

    Digital Limbo · January 14, 2020 at 16:18

    As written in the article, Admob has its own definitions which are different than simple fill rate. If they pre-cache an ad, this will affect the match rate as it’s the system that sent the ad requests, but the actual fill is another topic. Maybe not all your users are eligible to see an ad, or they reached your daily caps, nevertheless the system is pre-caching ads. That’s why the match rate can be high but the show rate is not. My suggestion would be to have some internal reporting where you can see the actual user requests, instead of the system requests. So for instance, you need to have an event triggered every time a user click on the button to watch a rewarded video; once you have this number, you will compare it with the number of impressions to understand your actual fill rate.
    Bottom line here is that a show rate of 40% on Admob doesn’t mean that your fill rate is bad.
    I hope it helps!

Krishna · March 5, 2020 at 11:14

Hi – I am new to the Ad industry and I am trying to understand video ad insertion. Hope you can help me? How is video ad fill rate computed? If I understand correctly, when the video playback begins, a request is sent from the player to the ad server who might send back 5 ads (for 5 ad slots). These are called impressions, right?

And if the ad plays back successfully, they are called plays.

So if one request results in 5 plays, then fill rate will always be 100%.

Can you help me understand this?

    Digital Limbo · March 5, 2020 at 17:21

    Impression means the video ad starts on the user device, the request it’s happening before the impression, sometimes upon user request, sometimes upon system request as specified in the article. If you have 5 requests and 5 impressions, your fill rate it’s 100%.
    I hope it helps!

Leave a Reply

Avatar placeholder

Your email address will not be published.