読み込み時間は、Android Performance Tuner で利用可能な新しいパフォーマンス属性です。この属性を使用すると、ゲームの読み込み時間に関連するパフォーマンスの問題が特定でき、パフォーマンス上の改善点も明確にすることができます。それにより、ユーザーの満足度を高め、維持率を改善できます。
読み込み時間の影響度の指標は、パフォーマンスに関する最大の問題を特定する際の参考になります。こうした問題は対策がとりやすいように分類されます。デバイスモデルとゲーム アノテーション レベルの両方の情報を得ることで、最も効果的な対処方法を見つけることができます。
統合
Android Performance Tuner に読み込み時間を統合する方法には、どのようにセットアップしたかに応じて、標準統合と Unity プラグイン統合の 2 つがあります。Android デベロッパー サイトに記載の手順に沿って統合を完了してください。
統合の完了後、下記の統合後のチェックリストを確認してから、Google Play Console に App Bundle をアップロードして、読み込み時間のデータ収集を開始します。
統合後のチェックリスト- アプリのプライバシー ポリシーを確認し、必要に応じて更新します。
- 忠実度パラメータと、アプリのすべての品質レベルを指定します。以下のドキュメントが参考になります。
- 読み込み時間をキャプチャするために読み込みアノテーションを記録します。以下のドキュメントが参考になります。
- 検証ツールを実行して問題がないことを確認し、モニタリング アプリを使用して、想定されるデータが返されることを確認します。
- デバッグモードでゲームを実行し、logcat または Tuning Fork Monitor アプリを使用して出力を検証します。
- デベロッパーと、ゲームの他の関連エンジニアが Google Play Console で Android Vitals にアクセスできることを確認します。
- ゲームを外部に公開する前に、内部テストトラックに公開して、データが収集され、[読み込み時間] ページ([品質] > [Android Vitals] > [パフォーマンス] > [読み込み時間])に正しく表示されることを確認します。
読み込み時間の基本コンセプト
[読み込み時間] ページ([品質] > [Android Vitals] > [パフォーマンス] > [読み込み時間])を有効に使用するには、あらかじめ読み込み時間に関する一般的な概念を定義し、把握しておくことが重要です。
読み込み時間を定義する
「読み込み時間」という用語が何を指すかは、デベロッパーによって異なることがあり、読み込み時間の改善の評価方法も、デベロッパーや企業によって異なります。ゲームにおける読み込み時間について考え、定義することが重要です。
読み込み時間は、ユーザーがアプリのアイコンをタップして空白の画面が表示されている間、またはインタラクティブ メニューが表示されるまでの時間とすることが考えられます。あるいは、アプリの起動からゲームプレイの開始までの時間や、まったく異なる時間とすることも考えられます。
Google は、デベロッパーや企業がそれぞれ独自の成功の指標を持つものと考えており、Android Performance Tuner を使用する際に、読み込み時間を柔軟に定義できるようにしています。読み込み時間について社内で明確な定義がない場合は、プロセスの作成時からユーザー操作が可能になるまで(たとえば、メニューが表示されるまで)の時間、またはプロセスの作成時からゲームプレイの開始までの時間とすることをおすすめします。
読み込み時間の種類
読み込みには、状況に応じてさまざまな種類(初回の読み込みからレベル間の読み込みまで)があります。一般的なものとして、Android Vitals の定義をご覧ください。これ以外にも、ゲーム開発に注目した定義があります。
- コールド スタートの読み込み: コールド スタートとは、アプリのプロセスが実行されていないゼロの状態から起動することです。コールド スタートが発生するのは、ユーザーがデバイスを再起動した後にアプリを初めて起動する場合です。他の起動時よりも、システムとアプリが多くの作業を行う必要があるため、コールド スタートでは、起動時間を最小化するうえで最大の課題が明らかになります。
- 初回読み込み: 初回読み込みは、コールド スタートの特別な場合で、そのデバイス上でアプリが初めて起動する場合です。コンテンツ配信ネットワーク(CDN)からのファイルのダウンロード、シェーダーのコンパイル、APK からのファイルの抽出などのタスクが追加されることがあります。初回読み込みは、その後のコールド読み込みの時間よりかなり長くなることがあります。
- ウォーム スタートとホットスタートの読み込み: アプリプロセスがすでに存在する場合、ウォーム スタートやホットスタートの読み込みが発生し、そのプロセスはフォアグラウンドに復帰します。ただし、データや状態については、その一部またはほとんどを再読み込みまたは再作成する必要があります。
- レベル間読み込み: ゲーム内で、あるレベル、マップ、シーンから別のレベル、マップ、シーンに遷移する際、レベル間読み込みが発生し、追加コンテンツの読み込みが必要になることがあります。
放棄とデータのフラッシュ
ユーザー調査とスマートフォンの機能から「良好」な状態がはっきりわかるフレームレートとは異なり、読み込み時間の定義はそれほど一貫していません。読み込み時間について良いか悪いかをはっきり示す指標はありません。そのため、読み込み時間の状況を把握して注意すべき箇所を特定できるように、セッションの放棄に関するデータが収集されます。
放棄率が低いからといって、ユーザーが満足しているとは限りません。ゲームをやめないユーザーも、読み込み操作に満足していない可能性があります。一方、読み込み中の放棄率が高いのは悪い兆候であり、読み込み時間が長すぎるおそれを示します。ユーザーがゲームをやめることは、プレイ時間および収益の減少につながります。
バックグラウンドでもフォアグラウンドでも、放棄には非常に多くの指標が関連しているので、放棄されたセッションを記録するために、アプリが状態を変更する際にアノテーションを付けてデータをフラッシュするように統合システムをセットアップすることをおすすめします。最終的に終了するセッションだけに注目するよりも確実な方法です。
読み込み時間データの一般的な使用例
社内のニーズに応じて、さまざまな方法で Android Performance Tuner の読み込み時間データを利用できます。一般的な使用例を紹介します。
- 許容できる最大読み込み時間を判断する
- 現在の読み込み時間と目標読み込み時間を比較する
- 読み込み時間が予想外に長い箇所を特定する
下記の各セクションを開いて、使用例ごとの手順をご覧ください。
許容できる読み込み時間を判断する要件
下記の手順を行う前に、以下の作業を行う必要があります。
- Android Performance Tuner をそのゲームに統合します(詳しくは、Android デベロッパー サイトをご覧ください)。
- 上記の読み込み時間の基本コンセプトを確認します。
- 読み込み時間をゲームに組み込みます。その際、イベントの記録の開始と停止に特に注意します(詳しくは、Android デベロッパー サイトをご覧ください)。
- アプリを公開して(最初に、内部テストトラックに公開することをおすすめします)、データを収集します([読み込み時間] ページには、最小しきい値を超えるデータ量が収集されるまで表示されません)。
十分なデータがそのゲームで収集されたら、以下の手順で許容できる読み込み時間を判断できます。
- Google Play Console を開き、[読み込み時間] ページ([品質] > [Android Vitals] > [パフォーマンス] > [読み込み時間])に移動します。
- フィルタを使用して、該当する App Bundle または APK と、期間を選択します。
- 読み込みの種類すべてにわたる [読み込みイベントの結果(読み込みタイプ別)] のグラフ、または特定の [読み込みの種類] のグラフを確認します。
- グラフで、放棄率が許容範囲を超えるポイントを探します。これは明らかな変曲点であり、読み込み時間による放棄がビジネス目標(たとえば、10%)に影響を与えるポイントになります。このポイントは、ほとんどのユーザーが放棄せずに許容する最大の読み込み時間であり、このポイントより前に通常の読み込みイベントを完了させる必要があります。
要件
下記の手順を行う前に、以下の作業を行う必要があります。
- Android Performance Tuner をそのゲームに統合します(詳しくは、Android デベロッパー サイトをご覧ください)。
- 上記の読み込み時間の基本コンセプトを確認します。
- 読み込み時間をゲームに組み込みます。その際、イベントの記録の開始と停止に特に注意します(詳しくは、Android デベロッパー サイトをご覧ください)。
- アプリを公開して(最初に、内部テストトラックに公開することをおすすめします)、データを収集します([読み込み時間] ページには、最小しきい値を超えるデータ量が収集されるまで表示されません)。
十分なデータがそのゲームで収集されたら、以下のように、読み込み時間と目標を比較できます。
- Google Play Console を開き、[読み込み時間] ページ([品質] > [Android Vitals] > [パフォーマンス] > [読み込み時間])に移動します。
- フィルタを使用して、該当する App Bundle または APK と、期間を選択します。
- まだ設定していない場合は、目標読み込み時間を、許容できる読み込み時間として判断した時間に設定します。
- ページ上部の概要セクションを確認すると、パフォーマンス全体を把握して、注目すべき箇所を特定できます。
-
読み込みの種類別のグラフを表示し、読み込み時間の目標内に完了した読み込みイベントの割合に満足できるかどうかを評価します。青色の線は 95% までです(極端なロングテール セッションが含まれる可能性があるため)。読み込み時間の目標内に完了した読み込みイベントが 90% に満たない場合は、読み込み時間を改善する方法について検討します(下記をご覧ください)。
要件
下記の手順を行う前に、以下の作業を行う必要があります。
- Android Performance Tuner をそのゲームに統合します(詳しくは、Android デベロッパー サイトをご覧ください)。
- 上記の読み込み時間の基本コンセプトを確認します。
- 読み込み時間をゲームに組み込みます。その際、イベントの記録の開始と停止に特に注意します(詳しくは、Android デベロッパー サイトをご覧ください)。
- アプリを公開して(最初に、内部テストトラックに公開することをおすすめします)、データを収集します([読み込み時間] ページには、最小しきい値を超えるデータ量が収集されるまで表示されません)。
- どの種類の読み込みに重点を置くかを決め、読み込み時間が長くなる原因について仮説を立てます。次に例を示します。
- よく使われているデバイスでのパフォーマンスが悪い
- 読み込み時間が他よりも特に長いレベルやマップがある
- CDN のダウンロードが大量にある
十分なデータがそのゲームで収集されたら、読み込み時間が特に長い箇所を、次のように特定します。
- Google Play Console を開き、[読み込み時間] ページ([品質] > [Android Vitals] > [パフォーマンス] > [読み込み時間])に移動します。
- フィルタを使用して、該当する App Bundle または APK と、期間を選択します。
- 読み込みの種類を選択します。
- [デバイスのモデル] の内訳を調べて、デバイス固有の問題があるかどうかを確認します。問題がある場合は、プロファイラを使って、読み込み効率を改善できるかどうかを判断します。
- アノテーションの内訳を調べて、アノテーションを付けた箇所のいずれかに固有の問題があるかどうかを確認します。問題がある場合、解決策はゲームに固有のものとなる可能性があり、特定のレベルやマップ、またはゲームプレイの特定の部分に関して、変更が必要になることがあります。