Firebase Performance Monitoringplat_iosplat_androidplat_web

アプリのパフォーマンス上の問題を分析します。

Firebase Performance Monitoring サービスを使用すると、iOS アプリ、Android アプリ、ウェブアプリのパフォーマンス特性を把握できます。

Performance Monitoring SDK を使用してアプリからパフォーマンス データを収集し、Firebase コンソールでデータのレビューと分析を行います。これにより、アプリのパフォーマンスをいつどこで改善できるかがわかり、その情報を使用してパフォーマンスの問題を解決できます。

iOS Android ウェブ

主な機能

アプリの起動時間や HTTP/S ネットワーク リクエストなどを自動的に測定する Performance Monitoring SDK をアプリに統合すると、アプリのパフォーマンスの重要な指標をモニタリングするためのコードを作成する必要がなくなります。
ネイティブ アプリの場合、起動時間、画面ごとのレンダリング データ、フォアグラウンドでのアクティビティ、バックグラウンドでのアクティビティといった指標が SDK でロギングされます。ウェブアプリの場合、First Contentful Paint や、ユーザーがアプリと対話できるかどうかなどについて、SDK によってロギングされます。
アプリのパフォーマンスの改善が見込める状況を見抜く ユーザーの期待に応えられていない理由が正確にわからないと、アプリのパフォーマンスを最適化するのは困難です。これに対応できるように、Performance Monitoring ではパフォーマンス指標を国、デバイス、アプリのバージョン、OS レベルなどの属性別に分析して確認できます。
アプリのモニタリングをカスタマイズする 新しい画面の読み込みや新しいインタラクティブ機能の表示といった特定の状況でアプリのパフォーマンスをキャプチャするカスタム トレースを作成できます。また、カスタム指標を作成すると、トレース時に定義したイベント(キャッシュ ヒットなど)をカウントできます。

仕組み

Performance Monitoring は、Performance Monitoring SDK を組み込んだ iOS アプリ、Android アプリ、ウェブアプリで使用できます。Performance Monitoring は、アプリでの所要時間トレースHTTP/S ネットワーク リクエスト トレースを自動的にモニタリングします。

自動所要時間トレース

トレースは、アプリ内の 2 つの時点の間で取得されたパフォーマンス データのレポートです。Performance Monitoring には、いくつかのデフォルトの所要時間トレースが自動で組み込まれています。

  • iOS アプリと Android アプリには、次の自動所要時間トレースがあります。

    • アプリ起動トレース - ユーザーがアプリを開いてからアプリが応答するまでの時間を測定します。

    • フォアグラウンド アプリのトレースとバックグラウンド アプリのトレース - アプリがフォアグラウンドにあるときやアイドル状態のときのパフォーマンスに関する分析情報を示します。

  • ウェブアプリの場合は、自動所要時間トレースはページ読み込みです。これはさらに次の指標に細分されます。

    • 初回ペイントとコンテンツの初回ペイント - ブラウザがアプリのレンダリングを開始する時間と実際にページのコンテンツがユーザーに初めて表示される時間を測定して比較します。

    • 初回入力遅延 - 大型の JavaScript バンドルのようにアプリのリソースの読み込みと解析に時間を費やされている状況ではなく、ユーザーが最初にアプリを操作し始めたときに、ブラウザがどれだけ早く応答できるかに関する分析情報を示します。

    • DOM 関連イベント - アプリのリソース(HTML、JavaScript、CSS、画像など)の読み込みと解析にかかる時間を測定して、アプリのパフォーマンスがユーザーにどのように認識される可能性があるかに関する分析情報を示します。

カスタム トレース

カスタム トレースを構成することもできます。カスタム トレースは、アプリ内の特定のコードに関連付けられたパフォーマンス データのレポートです。Performance Monitoring API を使用して、カスタム トレースの開始と終了を定義します。

またカスタム トレースを詳細に構成することで、該当する範囲内で発生したパフォーマンス関連イベントのカスタム指標を記録することもできます。たとえば、キャッシュのヒット数とミス数や、UI が一定の期間反応しなかった回数のカスタム指標を作成できます。

HTTP/S ネットワーク リクエスト トレース

HTTP/S ネットワーク リクエスト トレースは、アプリがサービス エンドポイントにリクエストを発行してから、そのエンドポイントからのレスポンスが完了するまでの時間をキャプチャするレポートです。アプリがリクエストを発行する任意の宛先エンドポイントについて、Performance Monitoring は次のような指標を取得します。

  • 応答時間: リクエストが発行されてからレスポンスが完全に受信されるまでの時間

  • ペイロード サイズ: アプリによってダウンロードまたはアップロードされたネットワーク ペイロードのバイトサイズ

  • 成功率: 全レスポンス数に対する成功レスポンス数の割合(ネットワーク障害やサーバー障害を測定することを目的とします)

URL パターン マッチングを使用すると、Performance Monitoring は類似したネットワーク リクエストのデータを自動的に集計します。これにより、ネットワーク リクエスト パフォーマンスの傾向を把握できます。

属性

パフォーマンス モニタリング データは、所要時間トレースと HTTP/S ネットワーク リクエスト トレースの両レポートでそれぞれ次のように分類されます。

所要時間トレースHTTP/S ネットワーク リクエスト トレース
iOS アプリと Android アプリ
  • アプリのバージョン
  • OS レベル
  • デバイス
  • 無線通信
  • 携帯通信会社
  • アプリのバージョン
  • OS レベル
  • デバイス
  • 無線通信
  • 携帯通信会社
  • MIME タイプ
ウェブアプリ
  • ブラウザ
  • 効果的な接続タイプ
  • ページ URL
  • Service Worker のステータス
  • 表示状態

また、カスタム属性を設定すると、アプリ固有のカテゴリ別にデータをセグメント化することもできます。

実装パス

アプリに Performance Monitoring SDK を追加する アプリで使用する他の Firebase プロダクトとともに Performance Monitoring SDK をアプリに追加できます。
iOS | Android | ウェブ
(省略可)
Performance Monitoring SDK を使用してアプリにカスタム トレースと指標を定義する
Performance Monitoring SDK を使用して、アプリのパフォーマンスを特定の側面から測定するカスタム トレースと指標を定義できます。
Firebase コンソールでパフォーマンス データをモニタリングする Firebase コンソールを使用すると、ユーザーのパフォーマンス データをモニタリングし、アプリにパフォーマンスを改善する余地がある状況を検出できます。また、そのデータをアプリのバージョン、国、デバイス、OS などの属性で分析することもできます。

ユーザーデータ

Performance Monitoring が個人を特定できる情報(名前、メールアドレス、電話番号など)を永続的に保存することはありません。HTTP/S ネットワーク リクエストをモニタリングするにあたり、Performance Monitoring は URL(URL パラメータは含まない)をもとに集約された匿名の URL パターンを構築します。このパターンが最終的に保存され、Firebase コンソールに表示されます。

Performance Monitoring によって収集されるデータの完全な一覧については、データ収集をご覧ください。

次のステップ