Play as you Download best practices
Stay organized with collections
Save and categorize content based on your preferences.
These best practices can improve install latency when Play as you Download
is enabled for your app.
Use the latest SDKs
Use the latest SDKs for your app, especially if you are using the following
SDKs:
The latest SDKs are optimized for Play as you Download to operate without
scanning the entire app binary. This lets users start your app more quickly
the first time they launch.
Use install-time asset packs
Use install-time asset packs to
store large game assets. Google Play optimizes downloads by analyzing use
patterns of install-time asset packs. This helps the game launch much faster
while only downloading data that users need during the initial game launch.
The following table shows what code and resources are optimized by Play as you
download when games use an
Android App Bundle with Play Assets Delivery.
Resource format |
Optimized by Play as you Download |
Not optimized by Play as you Download |
Android App Bundle files |
Base Module and install-time dynamic features (except ‘res/’ and ‘values/’ directories) |
`res/` and `values/` directories of base module and install-time dynamic features |
|
On-demand dynamic features |
Play Asset Delivery files |
Install-time asset packs |
Fast-follow asset packs |
|
On-demand asset packs |
Limit preloaded assets
Instead of preloading all app assets at once, only load what's needed for the
current user experience such as the menu or level. Loading too many assets
during the initial experience uses more network data up front.
Here are some additional recommendations for Unity games:
Fix ANRs
By fixing ANRs
(Application Not Responding errors) in your app, you can also improve the Play
as you Download experience of the app. For example, by removing
IO operations from the main thread,
you can minimize ANRs from occurring while Play is downloading app assets in
background.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-07-21 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-21 UTC."],[],[],null,["# Play as you Download best practices\n\nThese best practices can improve install latency when Play as you Download\nis enabled for your app.\n\nUse the latest SDKs\n-------------------\n\nUse the latest SDKs for your app, especially if you are using the following\nSDKs:\n\n- Facebook Core SDK: 11.2.0 or higher\n\n- FB Audience Network (ads): 6.5.1 or higher\n\nThe latest SDKs are optimized for Play as you Download to operate without\nscanning the entire app binary. This lets users start your app more quickly\nthe first time they launch.\n\nUse install-time asset packs\n----------------------------\n\nUse [install-time](/guide/playcore/asset-delivery#delivery-modes) asset packs to\nstore large game assets. Google Play optimizes downloads by analyzing use\npatterns of install-time asset packs. This helps the game launch much faster\nwhile only downloading data that users need during the initial game launch.\n\nThe following table shows what code and resources are optimized by Play as you\ndownload when games use an\n[Android App Bundle with Play Assets Delivery](/guide/app-bundle/app-bundle-format).\n\n| Resource format | Optimized by Play as you Download | Not optimized by Play as you Download |\n|---------------------------|-----------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|\n| Android App Bundle files | Base Module and install-time dynamic features (except 'res/' and 'values/' directories) | \\`res/\\` and \\`values/\\` directories of base module and install-time dynamic features |\n| Android App Bundle files | | On-demand dynamic features |\n| Play Asset Delivery files | Install-time asset packs | Fast-follow asset packs |\n| Play Asset Delivery files | | On-demand asset packs |\n\nLimit preloaded assets\n----------------------\n\nInstead of preloading all app assets at once, only load what's needed for the\ncurrent user experience such as the menu or level. Loading too many assets\nduring the initial experience uses more network data up front.\n\nHere are some additional recommendations for Unity games:\n\n- See\n [Loading resources at runtime](https://docs.unity3d.com/2022.2/Documentation/Manual/LoadingResourcesatRuntime.html).\n\n- Split large scenes into multiple scenes to avoid loading large amounts of\n asset data at once.\n\n- Use an asset loading profiler (such as the\n [Asset Loading Profiler module in\n Unity](https://docs.unity3d.com/2022.2/Documentation/Manual/profiler-asset-loading-module.html))\n to identify asset loading optimizations for your game.\n\nFix ANRs\n--------\n\nBy fixing [ANRs](/topic/performance/vitals/anr)\n(Application Not Responding errors) in your app, you can also improve the Play\nas you Download experience of the app. For example, by removing\n[IO operations from the main thread](https://developer.android.com/topic/performance/vitals/anr#io_on_the_main_thread),\nyou can minimize ANRs from occurring while Play is downloading app assets in\nbackground."]]