This is part six in a seven part series on how to use Apteligent to implement a collection of best practices from industry leaders called: “7 Best Practices for Optimizing Mobile Apps.”

Don’t Make Your Users Uninstall Your App

Battery drain and data usage are top of mind for consumers, but are often overlooked app metrics for companies. A survey from research firm IDC1 found that a majority of consumers found battery life to be the most important factor when purchasing a new phone. In fact, both Apple and Google, added built-in tools on iOS and Android that allow consumers to see which apps are using the most battery and data. If an app is on the top of either of these lists, it’s often in danger of being uninstalled.

Figure 1: iOS and Android let users see which apps are draining battery and use the most data

Use Apteligent to Protect Your App From Uninstalls

One of the most common factors that cause battery drain and excessive data usage is the number of network calls an app makes. In Apteligent, the “Network Insights” page is a great place to monitor and discover network calls and SDKs that could inadvertently cause an app to be uninstalled. The Apteligent SDK automatically captures all of the network calls an app sends and receives, and captures metrics such as the error rate, the number of requests, and the amount of data sent and received.

Figure 2: Use the Network Insights page to monitor request volume and data usage

To understand if your app is in danger of being uninstalled due to battery drain or data usage, it’s important to look specifically at two of these metrics: request volume and data in/out. Request volume measures how many network calls are made each minute and can be a good indicator of battery usage since each network call drains the battery. Data in/out measures how much data is sent and received by each network call and indicates the data usage of the app.

Identify Services and SDKs to Remove or Optimize

An app may use many different services that make network calls. Services are usually SDKs an app uses for analytics, ads, or authentication, a content delivery network (CDN) for images and videos, or an internal API. To understand which services are making the greatest number of requests or sending/receiving the most data, sort the services by “Request Volume”, “Data In”, and “Data Out.” If one of those services is a SDK that’s sending a large number of requests or using a lot of data, investigate whether that SDK can be optimized, or look for an alternative service that uses less data.

Figure 3: Sort by request volume and data in/out to identify problematic services

If there is a service with a high request volume, or sends and receives a large amount of data, click on that service to see the individual API calls that are being made.

Figure 4: Drill into the services with a high request volume or data usage

Depending on the SDK, API, or application, there can be multiple ways to optimize calls from each service to make fewer calls or send less data. Many of our customers have used this data to combine multiple API calls into one call, architect their app to make more use of caching, or removed a problematic SDK that was sending too much data from the app.

Bonus Tip

If the error rate of a service is high, it can often indicate an out-of-date SDK or a server-side issue with an SDK provider. Ensure you are using the latest version of each SDK. If the error rate is high on a consistent basis, use Apteligent’s data to work with the SDK provider on updating their SDK.

Summary

Monitoring an app’s effect on battery life and data usage can make the difference between an engaged user and an uninstall. By monitoring the network calls an app sends and receives, make informed decisions on optimizing API calls, caching data, or updating/replacing a problematic SDK.


1http://blog.gsmarena.com/idc-surveys-50000-people-reasons-behind-buying-smartphone-battery-life-deemed-important/