It's very obvious -- ads make the world go 'round. Well, maybe they don't literally make the world go 'round, but they're certainly a necessity in the business world. They make broadcast TV free, websites free and some mobile games/apps free. And ad networks for mobile apps are numerous. I'm sure every developer at some point has done a Google search for something like, "Which ad network is the best for mobile?" or "Which mobile ad network is the fastest?" If the only revenue you get from your app is ad generated, you need to know as much as possible about the ad networks in order to maximize your value.

Of course it's tough to capture a user's attention in this instant-gratification world. Big companies like Amazon have proved that milliseconds of added load time can make a user's attention shift from what's in front of their face to wondering what Trump will say next.

The Developer Challenge

I had a conversation with a customer who explained their ad situation to me and it went like this: After a user completes a level the user either goes into their store and browses around for a few minutes or goes to the next level within a few seconds. The developer's goal is to show an ad right before the next level starts, but they've found themselves in a pickle. Most developers will cache their ads few minutes before showing them, and the expiration is around 15 minutes.If the developer starts the ad download as soon as the user finishes the current level, and that user then browses the store for a few minutes, the ad will expire before it can be shown, right before the next level.

On the flipside, if the developer starts the ad download shortly after the user finishes the current level, and that user skips the store to go immediately to the next level, then the ad has not downloaded yet and cannot be shown to the user before the next level. In this case, it would be ideal for the ads to be delivered consistently within a set amount of time. But since ad retrieving timeout is around 300-400 milliseconds, even when you cache, slow ad retrieval is missing revenue. And connection drop is another issue that developers have to contend with.

Painful Disconnects

Companies that monetize with ads and have site traffic in developing countries feel much pain with session-disconnect errors. Many users will get so frustrated with a dropped connection that they won't even put in the brief time it takes to reload an app. Plus some networks, of course, are faster and more reliable than others. Verizon and T-Mobile top the US for speed, and lag slightly behind AT&T in disconnects. Following is global mobile app benchmark, which aggregates the performance of apps operating in actual networks throughout the world: https://packetzoom.com/mobile-observatory.html

Examples of Various Ad Download Times

The charts below show ads within a popular news app. They show all ads overall, Flurry ads and Facebook ads. The x axis shows the amount of time an ad took to download in milliseconds; the y axis shows the percentage of the total transfers that finished within that bucket of milliseconds. What we can see overall is that ads aren't delivered within a consistent amount of time; they're usually delivered anywhere from two to four seconds.

The black lines stand at around 100 milliseconds. You can see that almost no Flurry ads were delivered within one second, but a decent percent of Facebook ads were. What this says is that if you use a mediation ad network, you should expect your ads to load anywhere from less than one second up to eight seconds. That doesn't help you to engineer your app/game if it has time constraints like the example above. So what do you do? Well, if you choose to just use one ad network, you should be able to engineer your app/game to that specific ad network based on how long that specific network loads ads. Or, you could continue to use an ad mediator with the understanding that some percent of your users will not see the ad due to it loading too fast or too slow.

Bottom line is, attention shifts when something takes longer to load, and time is money. So keep this in mind with your mobile app ads.