NOTE: Ad optimization is one of the key modules included in the new TapJoy SDK. This entry discusses what it is, why it's important for iPhone developers, and what an ideal ad optimizer needs to do well
When we launched our first iPhone application, TapDefense, we were thrilled as the number of downloads increased by the hour. We got such interesting feedback that we even set up our own Facebook group so we could learn more about our users.
Everything was going better than planned. Except for one thing: we needed to find a way to make money from our very popular app.
Like many other iPhone game developers, we decided that showing banner ads was a good idea, and went looking for a good ad network to work with. We quickly integrated the ad functionality into our app, and waited for the money to start rolling in.
Fill Rates : Why You Need More Than One Network
The first surprise we had was that there weren't enough ads to be served if we worked with only one ad network. For every 100 ads TapDefense requested, only 40, 50, or 60 ads would be shown, depending on the day.
Fill Rate: Ad Impressions / Ad Requests
We knew that if we could get our Fill Rates closer to 100% it could mean a 2x boost in our revenue - immediately.
Our first solution was to work with multiple ad networks at the same time. This was a cumbersome process - we had to integrate multiple SDKs (some of which were unstable and crashed our app), and we had to write custom code to accomplish this.
We then wrote some code to daisy-chain the different ad networks together - so that if one network didn't have an ad available, the app would automatically go to the next network in our list and pull down an ad from there.
This system brought our fill rates to 100% and would later become the basis of the Tapjoy SDK, which makes it possible for any iPhone app (and soon, Android app) to use multiple ad networks. In this way, every app developer can be sure that they don't miss out on advertising revenue.
eCPM: Why You Need Automatic Optimization
With this first step, we were able to improve our ad revenue significantly, but then we had another issue. Now that we had multiple ad networks, we weren't sure which one was the best one to use at any given time.
The effective CPM's that we got from different networks varied considerably.
Effective CPM (eCPM): Average Revenue per 1,000 Ad Impressions
One day, ad network A would be offering the highest eCPM, and we'd put them first in our chain. Then, the next day, the first ad network would suddenly start serving ads which paid a lower eCPM, which would mean that network B was offering the highest eCPM.
With at least six well known mobile ad networks, we turned to mobile optimization. This involved manually updating the eCPM from each network and letting the software show the highest value ads from the top networks. And if the #1 ad network in the list didn't return an ad (fill rates from individual networks are still not close to 100%) then we would request an ad from the #2 network and so on down the list.
This helped increase our revenue from ads significantly - we were able to get an additional 2x increase in our total sales per month using this approach. Ad optimization using eCPM was the key to using maximizing the value of our ad inventory
But this wasn't the end of the story. In fact, doing this kind of "manual optimization" also ended up being a very time-intensive and inefficient process.
With more than six well known mobile ad networks, all changing their eCPM within the same day, it just wasn't practical to constantly keep them all up to date for even a single app. And since we were in the process of developing multiple apps and offering this same solution to our partners we knew that we needed to find a scalable solution.
What we needed, and what other iPhone app developers need, is an ad optimization server that can calculate and optimize eCPMs for each app in real time without requiring manual intervention.
The Tapjoy SDK
An ideal ad optimization solution would have features that would solve each of these key problems:
1. Ability to work with a large number of different ad networks
2. A daisy-chain system to achieve a 100% fill rate
3. Single place to see the stats and dollars earned from each ad networks
4. An ordering system based on the eCPM of each ad network
5. Ability to measure eCPM automatically
6. Automatic optimization throughout the day of different ad networks based on eCPM values for each specific app.
Before choosing an ad optimizer, you need to measure it against each of these key criteria.
At Tapjoy, we built our ad optimizer to meet each of these key criteria. We automatically optimize ads from across six different networks in real time, measure eCPM every hour, provide a single place to login and read earnings, and don't require any manual updating.
Tapjoy will check the eCPMs that each app is getting across each ad network programmatically, and then use that data to make sure that each app is showing the best possible ad at any given time.
Using this solution, we were able to increase our own revenue from ads in our free apps by more than 4x from the early days ofTapDefense. Our fill rates are now at 100% and our eCPMs have more than doubled.
The Tapjoy Ad Optimizer is included in the TapJoy SDK, which can be downloaded from www.tapjoy.com. We offer this solution 100% for free.
This makes the TapJoy SDK the best commercially available ad optimizer. And we haven't even gotten into the other important monetization features that are built into the TapJoy SDK, including the ability to measure analytics, monetize virtual currency and goods using Offers (CPA advertising), server-side high scores, wagered tournaments, and rewarded installs. We'll be writing about these other exciting features in upcoming posts.
Until then, Optimize Away!