属性を使用してデータをフィルタする


Performance Monitoring では、属性を使用してパフォーマンス データをセグメント化し、さまざまなシナリオにおけるアプリのパフォーマンスに焦点を当てることができます。

トレース テーブル(パフォーマンス ダッシュボードの下部)でトレース名をクリックすると、目的の指標にドリルダウンできます。[フィルタ ] ボタン(画面左上)を使用して属性でデータをフィルタできます。以下に例を示します。

<span class= 属性でフィルタされた Firebase Performance Monitoring データ" /> の画像

  • [アプリのバージョン] でフィルタし、過去のリリースや最新のリリースに関するデータを表示する
  • [デバイス] でフィルタし、古いデバイスにおけるアプリの処理方法を確認する
  • [国] でフィルタし、データベースのロケーションが特定のリージョンに影響していないことを確認する

属性に基づいてより強力に分析を行うには、パフォーマンス データを BigQuery にエクスポートしてください。

デフォルト属性

Performance Monitoring は、トレースの種類に応じてさまざまなデフォルト属性を自動的に収集します。

これらのデフォルト属性に加えて、カスタムコード トレースカスタム属性を作成して、アプリ固有のカテゴリ別にデータをセグメント化することもできます。たとえばゲームの場合では、ゲームレベルでデータをセグメント化できます。

Apple アプリと Android アプリのデフォルト属性

Apple アプリと Android アプリのすべてのトレースではデフォルトで次の属性が収集されます。

  • アプリのバージョン
  • OS レベル
  • デバイス
  • ラジオ
  • 携帯通信会社

さらに、ネットワーク リクエスト トレースは次の属性も収集します。

  • MIME タイプ

ユーザーデータの収集

カスタム属性の作成

計測されたカスタムコード トレースのいずれかにカスタム属性を作成できます。

Performance Monitoring Trace API(Swift | Obj-C)を使用して、カスタムコード トレースにカスタム属性を追加します。

カスタム属性を使用するには、属性を定義するアプリにコードを追加して、特定のカスタムコード トレースに関連付けます。カスタム属性は、トレースの開始から停止までの間の任意の時点に設定できます。

次の点にご注意ください。

  • カスタム属性の名前は次の要件を満たす必要があります。

    • 先頭や末尾に空白は使用できず、先頭にアンダースコア(_)も使用できません。
    • スペースは使用できません。
    • 最大長は 32 文字です。
    • 名前に使用できる文字は、A-Za-z_ です。
  • 各カスタムコード トレースでは、最大 5 つのカスタム属性を記録できます。

  • カスタム属性には、Google が個人を特定できる情報が含まれていないことを確認してください。

    このガイドラインの詳細

Swift

注: この Firebase プロダクトは、macOS、Mac Catalyst、watchOS の各ターゲットでは使用できません。
let trace = Performance.startTrace(name: "CUSTOM_TRACE_NAME")

trace.setValue("A", forAttribute: "experiment")

// Update scenario.
trace.setValue("B", forAttribute: "experiment")

// Reading scenario.
let experimentValue:String? = trace.valueForAttribute("experiment")

// Delete scenario.
trace.removeAttribute("experiment")

// Read attributes.
let attributes:[String, String] = trace.attributes;

Objective-C

注: この Firebase プロダクトは、macOS、Mac Catalyst、watchOS の各ターゲットでは使用できません。
FIRTrace *trace = [FIRPerformance startTraceWithName:@"CUSTOM_TRACE_NAME"];

[trace setValue:@"A" forAttribute:@"experiment"];

// Update scenario.
[trace setValue:@"B" forAttribute:@"experiment"];

// Reading scenario.
NSString *experimentValue = [trace valueForAttribute:@"experiment"];

// Delete scenario.
[trace removeAttribute:@"experiment"];

// Read attributes.
NSDictionary <NSString *, NSString *> *attributes = [trace attributes];