As the BBC notes this means that ad-supported apps may consume considerably more battery life than a paid for app.
Report author Abhinav Pathak said app makers must take energy optimisation more seriously. Free applications typically have built-in advertisements so developers can make money without having to charge for the initial app download. Mr Pathak told the BBC that developers should perhaps think twice when utilising third-party advertising and analytics services in their app.
None of this comes as a surprise. It is well known that data connections are one of the biggest energy drains on a mobile phone. However, the percentage of app energy usage, up to 75% in some cases, attributed to advertising and user tracking may still come as a surprise.
The paper, written by Abhinav Pathak (Purdue University), Y. Charle Hu (Purdue University) and Ming Zhang (Microsoft Research), looks at how energy consumption of apps can be measured using an energy profiling tool (called Eprof), analyses the energy profile of a number of popular apps and concludes that developers need to pay more attention to energy consumption when optimising applications. While the research was carried out on Windows Mobile 6.5 and Android devices the findings would be broadly applicable for any mobile platforms.
One of the key findings of the paper is that I/O (input/output) operations consume the most (50-90%) energy in mobile apps. Much of this is related to TCP/IP (network) activity, especially HTTP connections. In ad supported apps the energy required to request and then retrieve an ad over the network can represent a very substantial portion of an apps energy consumption.
The chart below, extracted from the published paper, shows an energy analysis for Angry Birds and Free Chess. Noting the levels of FlurryAgent and AdThread (AdWhirl), you can see downloading and displaying ads is a major part of the apps energy consumption (50%+).
Of course such energy expenditures are largely unavoidable for ad-supported apps. However, it is possible to optimise an app to avoid unnecessary or wasteful energy expenditure. This can be done at three levels. Firstly by the developer themselves (avoid unnecessary requests, batch where possible, ensure connections are closed when not being used), secondly in the components the ad serving SDKs (components) that advertising networks typically provide to developers (sensible caching, intelligent retrieval, connection batching) and thirdly at the platform level (intelligent monitoring handling of connection requests). Most platforms are already seeking to optimise this type of energy consumption; for example, one of the main reasons push notification systems are centrally managed is that they can be optimise to batch and prioritise connection requests (in both directions).
Nonetheless, it is clear that much remains to be done and it is very likely that energy consumption (i.e battery life) will become and even more important differentiator in the future.
The full paper can be downloaded from the Microsoft Research website.