There have been a lot of extraordinary claims recently that mobile ads could use up to to 75% of your phone's battery. Well, extraordinary claims require extraordinary evidence. So - let's take a look at the original Microsoft research paper. The first thing to note is that the paper doesn't claim that ads are responsible for 75% of battery drain. In one case, the researchers only looked at the first 33 seconds of usage when playing a chess game.
Naturally, at start up, an app will open communications to download an ad. Once the ad has been received, the app shouldn't poll for another ad for some time. However the time it takes to play a game of chess (the computer usually beats me in 10 minutes) a few ad calls are dwarfed by the energy consumption of the screen, the speakers, and the haptic feedback. If your game or app requires network connectivity to function, or the user already has an active data session, there is only minor incremental power usage when retrieving an ad. Also of interest is that the research was based on the HTC Magic and Passion. These are the two oldest Android phones - they went on sale in 2009. Since then the Android operating system has become a lot more efficient. Hardware changes in modern phones also achieve big battery savings. That said - it is important that developers make sure their code is as efficient as possible, and that includes their ad calling. Here are our top tips for making your ad calls as battery friendly as possible:
- Don't call an ad more times than you need to. Typically no more often than once per minute.
- GPS is very battery intensive - if you want to use location based advertising, ACCESS_COARSE_LOCATION is usually sufficient.
- Stagger your ad calls to coincide with other network accesses your app requires - such as update checks.
- Make sure you profile your app's performance. Get rid of as many bottle necks as possible.
- As the paper mentions, as a developer you must release your wakelocks properly.
- Finally, upgrade any libraries and SDKs you are using to the latest versions.
We have a great engineering team at InMobi. We're planning on releasing the next version of our Android SDK and iOS SDK soon. We'll be taking a look at what we've created to see if there are any more energy efficiencies to be made.