What is mobile ad monetisation and how it works? Part 1

11 min readNov 3, 2020


Why you need to read this text

Every mobile app publisher wants to earn money and acquire new valuable users. One way to monetise is to insert ads inside the app. It looks pretty simple: you have set placements, embedded SDKs — now get your money.

Yet it does not mean you will earn good money from your app even if you already have one ad inserted. In order to get revenue, you need to correctly set up monetisation tools: to form up waterfalls, optimise them, and constantly follow the efficiency of ad networks.

Ad monetisation can have a strong bearing on the growth of the developer’s product. It is possible to work with ads directly or through an ad mediation platform that helps you to cooperate with a few networks at the same time. This way you can optimise the process of ads publishing. This is called mediation. Advertisement purchase made for growth is a clear and simple process. Still, there is no complete understanding of how to sell ads with the highest profit. You can learn how to do so without losing quality from two parts of AppQuantum’s article.

Work with an ad network

Let’s imagine a developer. He created a mobile game and now wants to earn money from advertisements that will be embedded in it. He inserts some X ad network and now gets a little profit from it. Where does this profit come from? There are four actors participating in this process: developer, ad network, advertisers and users. Advertisers serve advertisements and pay in order for them to be published. The developer sends a request for ad impressions. The network gives one of its ads to the developer and also declares a percentage of the cost he wants to get from the impression.

A trivial scheme of how ad monetisation works. The network gets a request for ads from the developer (or publisher) — it then gives him an appropriate impression from its advertiser.

Therefore, the developer can only see the payment for the impression, but he does not know what margin the network takes.

Let’s get back to our developer. Since he only has one ad network embedded in his game, this network gets all the ad impressions. This network is an exclusive contributor and a monopolist. This means that without any competition it starts to get a higher and higher percentage commission from each impression, it varies from 75% to 90%.

The most profitable ads are from targeted advertising. The advertiser sets up a target in the request to the ad network, then the developer shares the data about its users with the network. If the network has ads fitting the user available at that moment, it is ready to buy it for an even higher price. Each ad network has a limit for the amount of advertisers. Thus, the more ad networks there are, the more chances this specific ad will be shown to the right user. It is obvious, the developer loses a large amount of money when he only utilises one ad network.

Note: even though the network gives a payment to the developer for just the impression, the advertiser could still pay for an impression, install, click or conversion. Therefore, this system is quite complicated. It can have both positive and negative margins.


Let’s say the developer had read our article to this point and suddenly decided to insert the second network to his game. Would it be enough to only add its SDK? Technically it is possible in the case that those networks’ SDKs do not conflict with each other. Doing it this way is not very efficient however. Without comparing the impressions revenue from each network, the developer will not know which network is more profitable at that moment. Therefore, every impression can theoretically be sold, but not necessarily at the best price.

In order to ensure healthy competition, there needs to be an ad mediation platform throughout this entire process. An ad mediation platform is a service providing monetisation of the app. It is set up through an SDK. Then network adapters of other networks also have to be applied. The ad mediation platform distributes impressions between these networks — this is how competition is ensured.

You can write the system of display distribution yourself (this would be your own self-made ad mediation platform). But there are some flaws in this approach: it takes too much time, you also need to be good at understanding the process of mediation and moreover you need to constantly support the SDKs of the different networks in their current statuses by yourself. Furthermore, there are already a lot of proven solutions working significantly better than self-written solutions: Google AdMob, IronSource, AppLovin Max and MoPub.

The networks themselves do not know they have entered into competition (except for the network whose ad mediation platform you also use). They could only guess by some indirect data: decrease of SOV (share of voice, or the part of the network in impressions), or the presence of an ad mediation platform among SDKs that are being tracked by services such as Market Intelligence etc.

However you can notify managers of each network personally, and tell them: “Look, this is the volume of traffic you purchase from us and this is our entire volume. Want more? Share!” Of course this method would work only in the case that you actually have good volume.

Volume is highly important for every ad network. They need volume to run ads and to give advertisers installs. Thus, they are ready to give away more of their commission to increase the volume of impressions. It leads to a situation where we:

  • Expanded a diversity of available ads and increased the chance to find a more suitable (thus, more expensive) advertisement for the user
  • Both ad networks start competing with each other and as a result they decrease their commissions

To sum up: competition is valuable in itself.


As we said before, the ad mediation platform distributes impressions between ad networks. This process is called a waterfall — an arranged list of advertising networks that in turn are requested if they have suitable ads. This process is defined as “calls”. They are also called “instances”, “placements”, “ad units” etc. But we consider the “calls” definition as the most appropriate. The amount of calls to a waterfall depends on the server of the ad mediation platform. The most common amount is about 20 times but it can vary up to 100 times.

The ad mediation platform by default will optimise the order of the networks in a waterfall based on data about impressions. But publishers can rank ad networks in order of preference. Networks will sell impressions for the cost they consider as proper. Will it be the most profitable price? The developer does not know. In order to optimise this process you need to set up the cost of one impression for each network yourself. And you also need to set up the order of calls in the ad mediation platform.


How does it work: you point out the desired CPM for each network and arrange them in the order you would like them to be called by the ad mediation platform. CPM — cost per mile — is the revenue you will get from the network for each 1,000 impressions of ads through your app. Why 1,000? Evaluating revenue in dollars is much simpler than in cents. Additionally, setting up the cost for 1,000 impressions gives a network the possibility to buy back particular users for different prices, getting on average the set value, except for the cases of hard floors.

Note: the definition CPM means both the cost the advertiser pays to publish the advertisement and the revenue the developer/publisher gets from the network. In this article we consider CPM only in the context of ad revenue.

There are three types of the price for each call:

  1. Hard floor — when the ads are displayed clearly by the CPM specified by the developer — or even higher. This is the least favourable floor among networks as it can often be reconciled for many weeks on the level of the companies’ HQ.
  2. Soft floor — CPM varies. It can be either higher or lower than what has been set by the developer. But on average the result will probably be lower. This is the most common floor among networks.
  3. Target floor — when ad networks can give the ad either higher or lower than the set CPM. When the volume is high the average cost should match target values though.

After setting the floor this call is added to the ad mediation platform where it is being requested with a bunch of similar calls.

Developers should configure calls in a waterfall themselves. The ad mediation platform simply walks through the waterfall in turn and asks if networks are willing to give their ads for the price the developer set. The ad mediation platform searches for the best available ad network while sending ad requests to multiple demand sources. This way, it ensures publishers find the best available ads to fill their ad slots. This is how it works: the ad mediation platform says to the ad network in the waterfall: “Give me an ad for a CPM of $150, rewarded video, I’m from the USA”. If you have one — good, if no — the mediation platform tries the next preferred ad network until it fills the ad request. The price would already be $140. And then it goes down by the reduction of prices until one of them finally gives a display.

The developer decides what would be the difference between costs of the calls himself. If he sets a difference of $10, he can miss an ad for $148 for instance. However, in the second case if the difference is too little, then it is gonna take too much time so there is a high chance the user will just close the app and go away. This way you get nothing from him.

An example of a waterfall

The trick is that the developer has to configure a waterfall with the highest level of calls to different networks in the span so that the user will get a display without losing its efficiency. In order to do so, waterfalls are being configured based on many factors: OS, GEO etc.

Still if you set costs too high, there is always a risk that no network will bid on the display. But if you set costs too low you would likely miss a profit. What the optimal price actually should be is a pretty relevant question that is still unclear.


Earlier we described how the call works. In fact this is a brute-force attempt (submitting many different requests in order to eventually guess the correct one) on networks until the moment there is a suitable option. An alternative approach is one call per network. There are two types of this — the first involves a price that is already known and the second one involves an unknown cost.

If the price is known, a mediation platform makes a call and it replies: “You should display my ads first and after that, I will tell you how much you will earn for that”. But if the cost is not set then the network says how much money the advertiser gets and then it gives a display. It is called RTB (real-time bidding) and it is the most popular method for both developers and networks since there is only one call with the highest price from this network with the minimum amount of publisher/developer action.

The mediation can consist of only one waterfall or only of bidders — or of both of them at the same time (in this case the waterfall would be called a hybrid waterfall).

A hybrid waterfall is a set of calls to bidders and to the ordinary waterfall in which the call takes place. The mediation platform calls bidders asking what cost they are ready to set for an impression and chooses the most profitable option. At the same time starts a waterfall call. If it has more expensive ads than the bidder offers then the impression goes to the waterfall’s network with the highest price. In case the cost of the waterfall goes lower than one the bidder is ready to give for the display, the bidder gets this display.

An approximate scheme of the work of a hybrid waterfall. To be clear, a sequential call process is described here.


In order to understand which way of working with mediation would be the best, there needs to be multiple setup tests. Waterfalls are being optimised with split-tests. The more data on the waterfall we have, the more precise output we will have. Most mediation platforms give developers all the tools to try both types of waterfalls and compare them. But even with high volumes the result is not always obvious. Therefore, it is crucial to evaluate them on a lower level than simply a comparison of the metrics of two groups. Self-made mediation scores an advantage because of the quality and quantity of experiments with split-tests.

Split-tests have to be held not only for new games, but also for optimised waterfalls. For instance, we at AppQuantum had been running a test for the USA and were comparing a current waterfall with a longer one (in which we added 9 more positions). All these positions were selected based on the performance of the control waterfall. We needed to make sure new positions would work with expected performance and not cause a large increase in the delay time.

According to the results of the split-test, the longer waterfall showed more efficiency and increased revenue by 15% with little loss of users. Further optimisations allowed us to decrease this loss with a new balance in the waterfall. To conclude, it is not enough to just optimise a waterfall once. For consistent performance you need to constantly look for new efficient setups.


Everyday mediation configuration and optimisation could be pretty boring and time-wasting. At AppQuantum we solve this issue with presets — sets of specific calls to specific waterfalls with requests that are the most suitable for these networks. This allows prioritising requests inside of the network and getting 15–20% more revenue.

Summing Up

Let’s go through the main theses of this article. In order to establish successful monetisation of your app, do not stop at just one advertising network — it is always better to immediately install a mediation platform and to connect several networks. It is not worth writing your own self-made mediation solution since you can freely use ready-made ones. Build your waterfalls, do not neglect experiments, and search all the opportunities for optimisation.

What’s next?

In the second part of the article we will tell you in detail about the process of mediation configuration from a technical point of view. Subscribe to our blog to get all the updates and we promise you it will be of great interest and extremely useful!


Ad Mediation Platform — a service that enables publishers to monetise their apps. You install this platform to your app by using an SDK that helps to distribute displays among ad networks on purpose to increase revenue.

Call — a request to ad networks in order to define whether they have ads of a set price before the ad space is sold.

Bidding — one call to a network with data about the target user that is expected to give back the most expensive display.

Waterfall — a list of the ad networks that gradually get calls from mediation platform for availability of ads by set price.

Hard floor — when ads are displayed at the specified developer CPM (or higher).

Soft floor — CPM varies. It can be either higher or lower than what has been set by the developer.

Target floor — when ad networks can give the ad either higher or lower than set CPM, but when the volume is high the average cost should match target values.

Setups — sets of calls to bidders and a waterfall in which the networks are being called.

CPM (cost per mile) — revenue you get from the network for each 1,000 impressions of ads through your app.

Follow AppQuantum for more useful mobile gaming news!