Advertising is one of the popular ways to monetize entertainment projects and applications. Using iFunny as an example, I’ll talk about advertising mechanisms and some difficulties that may be encountered when integrating advertising SDKs.
Glossary and General Mechanics
Inventory is a collection of all advertising placement of a site, application, etc.
There are only two placements in iFunny's inventory. The banner is located under the content and is almost always on the screen. Native ads, however, are inserted at regular intervals into the feed instead of content.
A publisher is a site in whose inventory an advertisement is placed. A publisher with an advertising network (hereinafter
referred to as the PC ) can work directly, but this is not necessary. In the advertising model used by iFunny, there is a third participant - a
mediator . That is, they always try to show ads in the application that bring the most revenue, therefore it works not with one PC, but with several at once. For each inventory object in the mediator system, there is a special id by which the publisher requests advertising. In response, the mediator offers options for the settings by which he will contact some of the PCs in an attempt to get the most expensive advertisement.
There are two fundamentally different models for building advertising work: a
waterfall and an
auction . Let's consider them in more detail.
The waterfall model involves enumerating the settings ordered by CPM (cost-per-mille, i.e. price per 1000 impressions) until the advertisement is loaded. The application requests the settings from the mediator and, having received them, goes to a specific PC. In the case of a positive answer, an attempt is made to load the proposed creative (with all accompanying resources). At the end of the iteration, a result message is sent to the mediator. In case of failure at any stage, everything is repeated. As a result, hundreds or even thousands of requests can be made to download one banner. This mechanism affects the banner loading time. Of course, all this also depends on the length of the waterfall.
In the auction model, the problems with time and the number of requests are resolved: the application polls each network for what maximum price it is ready to buy inventory. Then the mediator selects the most profitable option for the publisher and returns the settings for trying to receive advertising. With a probability of “almost certain”, PC will give us an advertisement on these settings (after all, she already promised it a couple of steps earlier).
How is the process of receiving advertising in iFunny
IFunny is constantly experimenting with approaches and mainly uses a mixed version:
- First, the networks with which the work is carried out according to the auction model are interrogated.
- Awaiting response from all partners.
- Received bets are saved on the client side and sent to the mediator SDK.
- The mediator, having received bets, adds them to the already existing waterfall.
- The mediator goes through the waterfall from top to bottom and offers the application the option of settings for contacting the PC.
- Download control is transferred to the partner’s SDK, which processes the settings sent by the mediator.
- The application with the received settings turns to the partner in an attempt to get advertising.
- The partner returns to the application the settings for downloading the creative (just in case you are lucky enough).
- The application makes an attempt to download the creative itself.
- Creative with all its resources is uploaded to the device (if you are doubly lucky).
- The application draws ads.
In the best case, it will be possible to get by with one iteration: the choice will be between the highest rate and the first level of the waterfall. At worst, you will have to repeat attempts, systematically going down the waterfall.
SDK
Many PCs strive to make their advertising unique, recognizable. If you want to cooperate with a certain PC, most likely you will have to implement their
far from perfect SDK in your code base in order to display their ads.
In addition to the unique design, SDKs usually implement their own logic for sending analytics events.
Targeting
In the personal accounts of mediator advertising networks, you can specify categories that are of interest to the target audience of your product: sports, travel, books, education, entertainment, games, etc.
Some PCs, for example, do not hesitate to use information about the position of the device in space. So they, among other things, understand what kind of creative to show: for portrait or landscape orientation of the device.
Analytics
Analytics is very important when calculating money - who owes what to whom.
Each advertiser wants to know exactly all the statistics on his creatives. Which publisher and how many times showed? And how many clicks were there? And if a creative contains video, then there can generally be a million events: they showed on the screen an adapter with creative - an event; playback began - another one; the user turned on or off the sound - again events; 25% of the length of the video was viewed - something has not been sent for a long time ...
IFunny has its own analytics system, and now 5 different events are logged:
- Ad Requested. Statistics for each attempt to request advertising:
- type of advertising (native or banner);
- RS;
- download success (if download failed, why).
- Ad attempt Shows the time from the very first ad request to its successful receipt. So you can experiment with the waterfall and its length, to predict the time required to receive advertising.
- Ad Viewed. If you showed creativity, then you need to remember information about it - useful for determining payouts from advertising networks.
- Ad Tapped. Similar to the previous one, but if the link is made from a creative.
- Ad Revenue. Since version 5.7.0, MoPub sends along with the creative and its CPM. This information allows you to record revenue expected from impressions and provides ample opportunities for analysis. At iFunny, they are actively using it.
All data on successful impressions and clicks is collected directly by the mediator. Thus, in case of disputes, you can rely on the information that the mediator stores.
Problems
Advertising integrations bring not only money, but also problems that have to be dealt with.
For one attempt to get advertising, you need to go through 11 steps, on each of which something may go wrong.
Testing, as a rule, is carried out on the same devices, and advertisers can perceive such devices as a tool for cheating views. Hence, difficulties arise in obtaining advertising at the testing stage. Not all PCs have test mode functionality in which this problem is resolved. There are those in which the test mode exists, but it works extremely unstable. Moreover, if some kind of functionality works on a test creative, then it’s not at all a fact that on a real creative this functionality works the same way.
Often, problems can be found in sending analytics. For example, it may turn out that if the advertisement is video content, then the PC will only show the advertisement if the user has watched the first 5 seconds of this video.
In the end, you need to understand that any third-party SDK in the code base is a black (or not so) box that not only does useful work, but also generates problems. The quality of the code written inside the SDK is not your responsibility, but a third-party developer. Sometimes this quality can be controlled, but, as a rule, the code is obfuscated and you can only guess what abcdef is responsible for, and for which klmnp
New versions of the SDK are released from time to time. Often the task of “updating the SDK X” involves reconnecting from scratch. Or vice versa, you need to update one file, but suddenly it turns out that practically everything does not work. This is usually followed by several hours of research. All these problems are usually caused by the fact that changelog of the updated version does not reflect the essence of real changes, and sometimes it simply does not exist. But this is understandable: public recognition of problems, although already resolved, can cost advertisers a lot of money.
Of course, advertising is a powerful tool in monetizing a product. You can apply it in different ways: for someone it is enough to have one banner in the inventory that is filled with only one PC, and someone builds huge systems that combine several mechanics and dozens of PCs at once. When choosing a model of interaction with MS, the complexity of the subsequent support of this system should be taken into account. Choose a solution that will be effective exactly in your case.