iOS Network Data Usage
The Network Data Usage metric measures the amount of data the app uploads and downloads (in Kb) through the network during a session.
In the app performance report, go to the Network Data Usage section to view the data uploaded and downloaded by the app through the network in the session. In the graph, the axes represent the following:
- X-axis: Depicts the time (in seconds) elapsed since the start of the session. 0 on the X-axis represents the start of the profiling session.
- Y-axis: Depicts the Value, which is the amount of memory consumed by the app at a particular time since the start of the session.
Example
In the following example, you can see that the total data uploaded to the internet throughout the session was 15608.51 Kb and the total data downloaded was 12395.3 Kb. You can also see the graph for the uploaded and downloaded data by the app at a particular time in the session since the session started.
To identify the actions or workflows that caused excessive network usage, you can play the session video. Alongside the video, a bar moves on the graph to help you identify the actions or workflows of your interest. To view uploads or downloads individually, use the legends given on the graph.
Impact on user experience
Excessive network usage by an iOS app can lead to a poor user experience by causing slow response times, network timeouts, and reduced battery life. It can also result in the user exceeding their data plan, leading to unexpected charges. To avoid these issues, it is important to optimize network usage and minimize unnecessary network requests.
Threshold guidelines
The recommended thresholds are:
- Total Network Uploads to be less than 5000 Kb in a session
- Total Network Downloads to be less than 20,000 Kb in a session
If your app exceeds these thresholds, App Performance Testing flags an issue in the performance report. To know more about the issue, see App performance issues - Network Usage.
Recommendations
The following are the recommendations to improve Network Usage:
- Minimize network requests: Minimize the number of network requests by batching requests, caching responses, and combining requests where possible.
- Optimize request payloads: Optimize the size and content of network request payloads by compressing data and removing unnecessary data fields.
- Use background fetch and push notifications: Use background fetch and push notifications to update app content in the background and reduce the need for frequent network requests.
-
Use NSURLSession for network requests: Use
NSURLSession
for network requests as it offers more control over network requests, can prioritize requests, and supports background transfers. - Implement retry logic for failed requests: Implement retry logic for failed network requests to ensure that requests are retried after a certain time interval or when the network connection is available again.
Related topics
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.
We're continuously improving our docs. We'd love to know what you liked
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.
We're continuously improving our docs. We'd love to know what you liked
Thank you for your valuable feedback!