Android アプリは、未処理の例外またはシグナルが原因で予期しない終了が発生するとクラッシュします。Java または Kotlin で記述されたアプリは、Throwable クラスによって表される未処理の例外をスローした場合にクラッシュします。マシンコードまたは C++ で記述されたアプリは、実行中に SIGSEGV などの未処理のシグナルが発生した場合にクラッシュします。
Android Vitals の指標としきい値
Android Vitals は、アプリのクラッシュ発生率をモニターして改善するために役立ちます。Android Vitals は、以下のクラッシュ発生率を測定します。
- クラッシュ発生率: いずれかのタイプのクラッシュが発生した、1 日のアクティブ ユーザーの割合。
ユーザーが認識したクラッシュ発生率: アプリのアクティブな使用中のクラッシュ(ユーザーが認識したクラッシュ)が 1 回以上発生した、1 日のアクティブ ユーザーの割合。アプリは、アクティビティを表示しているかフォアグラウンド サービスを実行しているときに、アクティブに使用されているとみなされます。
複数回クラッシュ発生率: クラッシュが 2 回以上発生した、1 日のアクティブ ユーザーの割合。
1 日のアクティブ ユーザーとは、1 日に 1 台のデバイスでアプリを使用するユニーク ユーザーを表し、複数のセッションにまたがる場合があります。1 人のユーザーが 1 日に複数のデバイスでアプリを使用する場合は、デバイスごとにその日のアクティブ ユーザーとしてカウントされます。複数のユーザーが 1 日に同じデバイスを使用する場合は、1 人のアクティブ ユーザーとしてカウントされます。
ユーザーが認識したクラッシュ発生率は「主な指標」のひとつであり、Google Play でのアプリの見つけやすさに影響します。この指標が重要な理由は、ここにカウントされるクラッシュはユーザーがアプリを使用中に発生するものであり、使用中断の原因となるためです。
Google Play では、この指標について 2 つの不正な動作のしきい値を定義しています。
- 全体的な不正な動作のしきい値: すべてのデバイスモデルで、1 日のアクティブ ユーザーの 1.09% 以上にユーザーが認識したクラッシュが発生している。
- デバイスごとの不正な動作のしきい値: 1 つのデバイスモデルで、1 日のアクティブ ユーザーの 8% 以上にユーザーが認識したクラッシュが発生している。
アプリが全体的な不正な動作のしきい値を超えると、すべてのデバイスでアプリの見つけやすさが低下する可能性があります。一部のデバイスでアプリがデバイスごとの不正な動作のしきい値を超えると、それらのデバイスでアプリの見つけやすさが低下し、ストアの掲載情報に警告が表示される可能性があります。
Android Vitals を使用すると、アプリが過度にクラッシュするときに、Google Play Console でアラートを受け取ることができます。クラッシュのスタック トレースは Android Vitals で確認することもできます。
Google Play が Android Vitals のデータを収集する方法については、Google Play Console のドキュメントをご覧ください。