Improve loading time with Android Performance Tuner

Loading time is a new performance attribute available in Android Performance Tuner that can help you identify performance issues relating to your game's loading times, and also highlight opportunities to improve your performance. This can help boost retention and user satisfaction.

Loading time impact metrics help you to identify the most significant performance problems, and issues are categorized to help you take action. Information at both device model and game annotation level enables you to find the most effective way to act.

Integration

Depending on your setup, there are two ways to integrate Android Performance Tuner with Loading times: standard integration or Unity plugin integration. Follow the instructions on Android Developers site to complete the integration.

After completing integration, review the post-integration checklist below before you upload your app bundle to Play Console to begin collecting loading time data.

Post-integration checklist

Core concepts for Loading time

Before you can use the Loading time page (Quality > Android vitals > Performance > Loading time) effectively, it's important to define and understand some general concepts relating to loading times.

Defining loading time

The term "loading time" can mean different things to different developers, and different developers and companies measure success for loading time in different ways. It's important to consider and define what a loading time is in relation to your game.

Your loading time could be the duration for which a blank screen is shown when a user taps an app icon, or the duration until an interactive menu displays. Your loading time could be the amount of time between the app starting and gameplay beginning, or it could be something entirely different. 

We recognize that every developer and company will have their own measure of success; with Android Performance Tuner you can be flexible in how you define your loading time. If you do not have a firm definition internally of what loading time means, we recommend starting with process creation until user interaction (for example, when a menu displays) or process creation until gameplay begins.

Types of loading time

There are many different types of loading depending on the situation (from first time loading through to inter level loading). Generally, we share Android vitals' definitions. However, there are also some additional game development-focused definitions:

  • Cold load: A cold start refers to an app’s starting from scratch; the app’s process is not currently running. Cold starts can happen, for example, when a user is launching your app for the first time after restarting their device. This type of start presents the greatest challenge in terms of minimizing startup time, because the system and app have more work to do than they do in other launch states.
  • First load: First load is a special case of cold load; when the app is starting for the first time ever on a device. You might have additional tasks like downloading files off content delivery networks (CDNs), compiling shaders, or extracting files from the APK. First loads can last considerably longer than subsequent cold loads. 
  • Warm and hot loads: Warm and hot loads occur when the app process already exists, and is brought to the fore, but some or most of the data or state needs to be reloaded or recreated. 
  • Inter-level loads: Inter-level loads take place when a game transitions from one level, map, or scene to another, and additional content may have to load. 

Abandonment and flushing data

Unlike frame rates, where user research and phone capabilities provide strong signal about what a 'good' frame rate is, loading times are less consistently defined. There is no definitively good or bad loading time. For this reason, we include data about session abandonment to contextualize the loading times and to help you identify where you should focus.

A low abandonment rate doesn't necessarily mean that your users are happy. Even if a user doesn’t quit the game, they may be unsatisfied with the loading experience. A high abandonment rate during loading is a negative sign, however, indicating that your loading time is possibly too long. Users quitting your game leads to decreased playtime and revenue. 

Because so many metrics are tied to abandonment, backgrounding, and foregrounding, we recommend setting up your integration to annotate and flush the data when your app changes state so that abandoned sessions are recorded, instead of just focusing on sessions which are eventually completed.

Common use cases for Loading time data 

Depending on your studio’s needs, you can use Android Performance Tuner’s Loading time data in many different ways. Here are some common use cases:

  • determine the longest acceptable loading time, 
  • see how your current loading time compares with your target loading time, and 
  • identify unexpectedly long loading areas.

You can expand the sections below to view instructions for each use case.

Determine an acceptable loading time

Prerequisites

Before you follow the instructions below, you must:

  • Integrate Android Performance Tuner into your title (go to the Android Developers site to learn more)
  • Read through the section above: Core concepts for Loading time
  • Integrate Loading time into your title, paying particular attention to your start and stop recording events (go to the Android Developers site to learn more)
  • Publish the app (we recommend publishing to an internal testing track first) and collect some data (you won't see any data on the Loading time page until you've collected more than a minimum threshold)

When your game has collected enough data, here's how you can determine an acceptable loading time:

  1. Open Play Console and go to the Loading time page (Quality > Android vitals > Performance > Loading time).
  2. Use the filters to select the relevant app bundle or APK and timeframe.
  3. Look at the graphs for "Loading event outcomes by loading type" across all loading types, or for a particular loading type that you’re interested in.
  4. Look for a point in the graph where abandonment becomes unacceptably high. This could be a clear inflection point, or at a point where loading time abandonment interferes with your business objectives (for example, at 10%). This point is the last loading time that is acceptable to most users before they start to abandon, and you should ensure that most loading events complete before this point.
Tip: You might choose to set the point of the last loading time that is acceptable as your target loading time (or perhaps a lower number with a suitable buffer to avoid abandonment).
Compare your loading time with your targets

Prerequisites

Before you follow the instructions below, you must:

  • Integrate Android Performance Tuner into your title (go to the Android Developers site to learn more)
  • Read through the section above: Core concepts for Loading time
  • Integrate Loading time into your title, paying particular attention to your start and stop recording events (go to the Android Developers site to learn more)
  • Publish the app (we recommend publishing to an internal testing track first) and collect some data (you won't see any data on the Loading time page until you've collected more than a minimum threshold)

When your game has collected enough data, here's how you can compare your loading time with your targets:

  1. Open Play Console and go to the Loading time page (Quality > Android vitals > Performance > Loading time).
  2. Use the filters to select the relevant app bundle or APK and timeframe.
  3. If you haven't already, set your target loading time to the number you've determined to be an acceptable loading time. 
  4. View the summary section at the top of the page to get an idea of your overall performance, and to identify areas you should focus on.
  5. View the graph for each loading type and assess whether or not you are satisfied with the percentage of loading events that are loading within your loading time target. Note that the blue line only goes up to 95% (as there can be some very long tail sessions). If you find that less than 90% of your loading events are completing within the loading time target, consider what actions you might take to improve loading times (described below).

Identify areas of particularly long loading

Prerequisites

Before you follow the instructions below, you must:

  • Integrate Android Performance Tuner into your title (go to the Android Developers site to learn more)
  • Read through the section above: Core concepts for Loading time
  • Integrate Loading time into your title, paying particular attention to your start and stop recording events (go to the Android Developers site to learn more)
  • Publish the app (we recommend publishing to an internal testing track first) and collect some data (you won't see any data on the Loading time page until you've collected more than a minimum threshold)
  • Decide which loading type you want to focus on, and form some hypotheses on what might cause long load times, for example:
    • Slow performance on some popular devices
    • Particular levels or maps taking longer to load than others
    • Large CDN downloads

When your game has collected enough data, here's how you can Identify areas of particularly long loading:

  1. Open Play Console and go to the Loading time page (Quality > Android vitals > Performance > Loading time).
  2. Use the filters to select the relevant app bundle or APK and timeframe.
  3. Select your loading type.
  4. Assess the "Device model" breakdown to see if there is a device-specific problem. If there is, use a profiler to determine if your loading could be more efficient. 
  5. Assess the annotation breakdown to see if there is a specific problem in one of your annotated areas. If there is, the solution may be specific to your game, and you may need to consider changing something about a specific level or map, or a certain part of the gameplay.

Was this helpful?

How can we improve it?
Search
Clear search
Close search
Main menu
2769227881201234115
true
Search Help Center
true
true
true
true
true
92637
false
false