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.




Leave a Reply

Your email address will not be published. Required fields are marked *