アセットのクラウド配信を実装する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
警告: Google Play Instant はご利用いただけなくなります。2025 年 12 月より、Google Play を通じて Instant Apps を公開できなくなり、すべての Google Play 開発者サービス Instant API が機能しなくなります。ユーザーには、あらゆるメカニズムを使用して Google Play からインスタント アプリが提供されなくなります。
この変更は、デベロッパーからのフィードバックと、Google Play インスタントの導入以来、エコシステムの改善に継続的に投資してきたことに基づいて行われます。
引き続き最も効果的にユーザーを獲得するために、デベロッパーは、ディープリンクを使用して、ユーザーを通常のアプリやゲームに誘導し、必要に応じて特定のジャーニーや機能にリダイレクトすることをおすすめします。
サイズ要件に合わせてアプリを縮小する場合は、まず APK の標準的なサイズ最適化手法をお試しください。サイズをさらに縮小する必要がある場合、アセットのクラウド配信機能が必要になることがあります。このドキュメントでは、クラウド配信用のアセットを準備する方法と、さまざまなゲームエンジンでのサポート オプションについて説明します。このページではゲームを中心に説明していますが、その原則は大規模なアセットを含むアプリにも当てはまります。
準備
アセットをクラウド配信するためにアプリの分割を検討する場合は、ユーザーが各セクションをいつ必要とするかに基づいて、アプリファイルを分割する方法を考えます。必要とするタイミングは、常に必要、起動時に必要、後で必要の 3 つのカテゴリに分類できます。
常に必要
小さなブロックに分割するのが難しいアセットや、ベース APK 内にバンドルすることが必要なアセットがあります。例として、ゲームのコード、そのライブラリやエンジンの依存関係が挙げられます。Google Play Core はコードの App Bundle をサポートしていますが、多くのエンジンは後でダウンロードされるコードに対応していません。
起動時に必要
ゲームの起動後、ユーザーがすぐにプレイできる必要があります。Google Play Instant の場合、LTE 接続または 4G 接続によりユーザーがゲームのプレイを開始できるまでの時間を 15 秒未満にすることが求められます(Google Play Instant のチェックリストをご覧ください)。そのため、起動後の二次ダウンロードは、初回のユーザー エクスペリエンスをサポートするのに必要最小限の範囲に限定してください。たとえば、起動直後の fast-follow ダウンロードの対象は、初回のゲームレベルや場所のアセット、または最初の数分間ゲームをプレイするのに必要なコードなどが考えられます。
後で必要
必要に応じて後からバックグラウンドでダウンロードできるものは、このカテゴリに分類されます。このカテゴリには、長時間プレイするゲームのほとんどのアセットが該当します。これらのアセットのダウンロードを後から行うようにすることで、アプリのサイズをできるだけ小さくすることができます。
エンジンでのサポート
クラウドによるアセット配信は、Instant Play ゲームにおける 15 MB の制限を超えた利用を可能にする主要な方法です。アセットのダウンロードにどのように対応しているかは、ゲームエンジンによって異なります。下記の最も一般的なケースと、アセットのホストに関するオプションをご覧ください。
起動時に必要となるアセットを少なくすることで、ユーザーがゲームのプレイを開始できるまでの時間が短縮され、初回起動時に離脱してしまうプレーヤーの数を減らし、プレーヤー維持率の向上につなげることができます。
Play の機能配信(App Bundle を使用)
App Bundle としてアプリを公開する場合(推奨)、機能モジュールを使用してベース APK 以外の追加リソースを取得できます。Instant App の場合、マニフェストで各機能モジュールについて dist:instant="true"
を設定する必要があります。dist:on-demand
プロパティは使用しないでください。これは主に、インストール済み APK 内のオンデマンド モジュールに使用します。また、各機能モジュールは、コードが含まれているかどうかにかかわらず、Instant APK の上限である 15 MB 未満にする必要があります。各モジュールがこの上限内に収まらないと、アルファ版トラックやリリース トラックに公開できません。正しく設定すると、PlayCore ライブラリを使用してランタイムに機能モジュールを取得できます。
Cocos Creator
バージョン v2.0.4 以降の Cocos は、アセットのクラウド配信をサポートしています。アセットが時間内にダウンロードされない場合は、Cocos がアセットをオンデマンドでダウンロードし、プレースホルダをレンダリングします。Cocos はアセット ファイルを生成しますが、Cocos 自身はそのホストサービスを提供していないので、なんらかのオンライン サービスを使用してホストする必要があります。
Unity
クラウド配信は、Unity バージョン 5.6、2017.4、または 2018.2 の Unity Google Play Instant プラグインでサポートされています。Unity の新しいバージョンほど、エンジン ストリッピングによるメリットが増えることから、空き容量をより多く確保するために移行することをおすすめします。Unity のクラウド アセットは、Unity が作成した AssetBundle
ファイルにホストされます。Unity は、本質的にアセット バンドルのダウンロードをサポートしています。アセットをクラウド サーバーにアップロードすることで、アセットのクラウド配信が可能になります。
その他のエンジン
カスタム エンジンを使用する場合も、ネイティブ ライブラリのコレクションを使用する場合も、アセットのクラウド ダウンロードが最初からサポートされていることがあります。クラウドからダウンロードする必要があるアセットが多い場合は、ゲーム用にアセットをオンデマンドでダウンロードする方法をコーディングまたは統合する必要があります。Firebase Hosting または Firebase Cloud Storage API を最初に試すことをおすすめします。一部のエンジンでは、簡単な HTTPS ファイルの取得を提供しており、それでニーズを満たせる場合もあります。
アセットのホスト
Google Play の App Bundle を使用して Play からアセットをダウンロードする場合以外は、アセットを別の場所でホストする必要があります。アセットをホストするサービスは、妥当なグローバル配信と可用性が確保できれば、どのサービスも利用できます。Google Play ゲームのアプリユーザーは世界中でプレイしているため、クラウドでホストされるアセットは、ユーザーがどこにいても迅速に配信される必要があります。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-07-27 UTC。"],[],[],null,["# Implement cloud delivery of assets\n\n**Warning:** Google Play Instant will no longer be available. Starting December 2025,\nInstant Apps cannot be published through Google Play, and all\n[Google Play services Instant APIs](https://developers.google.com/android/reference/com/google/android/gms/instantapps/package-summary)\nwill no longer work. Users will no longer be served Instant Apps by Play using any\nmechanism.\n\nWe're making this change based on developer feedback and our continuous investments\nto improve the ecosystem since the introduction of Google Play Instant.\n\nTo continue optimizing for user growth, we encourage developers to refer users to\ntheir regular app or game, using [deeplinks](https://support.google.com/googleplay/android-developer/answer/12463044)\nto redirect them to specific journeys or features when relevant.\n\nWhen shrinking your app to fit the size requirements, first try the\n[standard APK size optimization techniques](/topic/google-play-instant/getting-started/game-instant-app#apk-size-reduction).\nIf you need to shrink the size down further, you might need to rely on cloud\ndelivery of assets. This document describes how to prepare assets for cloud\ndelivery and the support options from various game engines. While the guidance\non this page focuses on games, the principles apply to any app that contains\nlarge assets.\n\nPreparation\n-----------\n\nWhen thinking about breaking up your app for cloud delivery of assets, consider\nhow you can split your app files into sections based on *when* they need to be\navailable to the user. This timing tends to fall into the following three\ncategories: needed always, needed at launch, and needed later.\n\n### Needed always\n\nSome assets are difficult to separate into smaller blocks or are required to be bundled in the base APK.\nExamples include your game code and its library or engine dependencies. While\n[Google Play Core supports app bundles for code](/guide/app-bundle/playcore),\nmany engines don't support code downloaded later.\n\n### Needed at launch\n\nAfter the game starts, the user should be able to play immediately. Google Play Instant\nrequires that users can start playing your game in less than 15 seconds over an\nLTE or 4G connection (see the [Google Play Instant checklist](/topic/google-play-instant/tech-requirements#total-download-size)).\nTherefore, limit any secondary download after launch to be\nonly as large as necessary to support the initial experience. For example,\na fast-follow download immediately after launch might include the first game\nlevel and location assets, or any code required to run the first few minutes of gameplay.\n\n### Needed later\n\nAnything that you can afford to download later, in the background as needed,\nwill fall into this category. This category includes most assets for long-play\ngames. Downloading these assets later will help decrease the size of your app to\nas small as possible.\n\nEngine support\n--------------\n\nCloud asset delivery is the primary way to enable your game to go beyond the 15 MB limit for Instant play games.\nSupport for downloading assets will vary based on game engine. See the most\ncommon cases below, as well as options for hosting assets.\n\nNote that fewer needed-at-launch assets allow the user to get in the game\nfaster, which translates to lower drop-off and better player retention for that\nfirst launch.\n\n### Play Feature Delivery (through App Bundles)\n\nIf you publish your app as an app bundle (which is the preferred method), you\ncan use\n[feature modules](/guide/app-bundle/dynamic-delivery#customize_delivery)\nto fetch additional resources beyond the base APK. For your instant app, each\nfeature module must set `dist:instant=\"true\"` in the manifest. The\n`dist:on-demand` property should not be used; it is primarily used for on-demand\nmodules in installed APKs. Additionally, each feature module must be under\nthe instant APK limit of 15 MB, regardless of\nwhether or not the module contains code. Failure to keep each module under this\nlimit will prevent publishing to alpha or release tracks. Once properly\nconfigured, you can [fetch feature modules at runtime](/guide/playcore#request)\nusing the PlayCore library.\n\n### Cocos Creator\n\nCocos has supported cloud delivery of assets since\n[version v2.0.4](https://docs.cocos.com/creator/manual/en/publish/publish-android-instant.html).\nCocos downloads assets on demand, rendering placeholders if assets haven't been\ndownloaded in time. Cocos generates asset files that must be hosted with some\nonline service as Cocos does not provide one of its own.\n\n### Unity\n\nCloud delivery is supported in the\n[Unity Google Play Instant Plugin](https://github.com/google/play-instant-unity-plugin)\nfor Unity versions 5.6, 2017.4, or 2018.2. Later versions of Unity offer more\nbenefits for engine stripping, so they may be beneficial to migrate to in order\nto free more space. Unity cloud assets are hosted in `AssetBundle` files that\nUnity creates for you. Uploading these to a cloud server enables cloud delivery\nof assets, as Unity has innate support for\n[downloading asset bundles](https://docs.unity3d.com/540/Documentation/Manual/DownloadingAssetBundles.html).\n\n### Other engines\n\nWhether you use a custom engine or a\ncollection of native libraries, your choice might support cloud downloading of\nassets out of the box. If you have enough assets that you need to\ndownload them off of the cloud, then you'll need to code or integrate a way to\ndownload assets on demand for your game. The\n[Firebase Hosting](https://firebase.google.com/docs/hosting/) or\n[Firebase Cloud Storage APIs](https://firebase.google.com/docs/storage/) are\ngood places to start. Some engines offer simple HTTPS file fetching that might\nbe enough for your needs as well.\n\nHosting assets\n--------------\n\nUnless you're using Google Play [app bundles](/guide/app-bundle/playcore) to\ndownload your assets through Play, you'll need to host your assets elsewhere.\nYou're free to host them with any service you'd like as long as it has a\nreasonable global distribution and availability. Google Play Games app users play\naround the world, so cloud-hosted assets need to be served to them quickly in\nany location."]]