Google I/O 2022 で発表された Firebase の最新情報をご覧ください。詳細

セグメントのインポート

Firebase は、Remote ConfigCloud Messagingアプリ内メッセージングなどの Firebase サービスによりユーザー グループをターゲティングすることで、ユーザー エクスペリエンスを調整するためのツールを提供します。BigQuery にリンクされたアカウントを使用すると、Firebase の外部で識別したセグメントをインポートし、Firebase サービスで対象を絞ったエクスペリエンスを実現できます。

インポートしたセグメントを設定する

Google Cloud BigQuery を使用して、セグメントのデータを Firebase にインポートできます。BigQuery にはデータの読み込み方法がいくつか用意されているので、構成に合わせて最適なアプローチを選択できます。

インポートしたセグメントのデータフロー

統合が有効になると、次のようになります。

  • Firebase は、ユーザーが所有するデータセットを BigQuery に作成し、読み取りアクセス権を設定します。
  • Firebase は、更新されたセグメントを Firebase コンソールでターゲティングできるように、データを定期的に取り込みます。
  • Firebase は、このデータに読み取り専用アクセス権を設定します。Firebase は、このデータのコピーを内部ストレージに保持します。
  • BigQuery データセットからデータが削除されると、そのデータは Firebase データ ストレージからも削除されます。

BigQuery インポートを有効にする

  1. Firebase コンソールの BigQuery との統合ページに移動します。
  2. BigQuery との統合をまだ設定していない場合は、画面上の指示に従って BigQuery を有効にします。 Firebase コンソールの統合画面
  3. [インポートしたセグメント] を有効にします。 [インポートしたセグメント] の切り替えが無効になっている状態

BigQuery からのセグメントのインポートを有効にすると、次の処理が行われます。

  • Firebase は、firebase_imported_segments という名前の新しい BigQuery データセットを自動的に作成します。このデータセットには、SegmentMembershipsSegmentMetadata という名前の空のテーブルが含まれています。
  • 「firebase_imported_segments」データセットがドメイン @gcp-sa-firebasesegmentation.iam.gserviceaccount.com の Firebase サービス アカウントと共有されます。
  • Firebase は、このデータセットからの読み取りジョブを少なくとも 12 時間ごとに行います。インポートは 12 時間よりも短い間隔で行われる可能性があります。

データを BigQuery にインポートする

サポートされている任意の方法で BigQuery にデータを読み込みSegmentMemberships テーブルと SegmentMetadata テーブルにデータを格納できます。データは、後述のスキーマに準拠している必要があります。

SegmentMemberships

[
  {
    "name": "instance_id",
    "type": "STRING"
  },
  {
    "name": "segment_labels",
    "type": "STRING",
    "mode": "REPEATED"
  },
  {
    "name": "update_time",
    "type": "TIMESTAMP"
   }
]

instance_id: 特定のアプリのインストールに使用される Firebase インストール ID。セグメントに含めるアプリ インストールごとにインストール ID を取得し、その値をこのフィールドに入力する必要があります。

segment_labels: デバイス("instance_id")を含むセグメント。わかりやすいものにする必要はありません。BigQuery のストレージ使用量を減らすために短くすることもできます。ここで使用する各 "segment_labels" に対応するエントリが SegmentMetadata テーブルに存在する必要があります。これは複数形ですが、SegmentMetadata テーブルでは "segment_label" になっています。

update_time: 現在 Firebase で使用されていませんが、BigQuery から不要になった古いセグメント メンバーシップを削除する場合に使用できます。

SegmentMetadata

[
   {
      "name": "segment_label",
      "type": "STRING"
   },
   {
      "name": "display_name",
      "type": "STRING"
   }
]

segment_label: 特定のセグメントを識別するためのラベル。このテーブルには、SegmentMemberships テーブルにあるすべてのセグメントに対応するエントリが存在する必要があります。ここでは単数形になっていますが、SegmentMemberships テーブルでは "segment_labels" になっています。

display_name: UI でわかりやすいセグメント名。Firebase コンソールでセグメントにラベルを設定する際に使用されます。

BigQuery に対する課金を設定する

インストール数が少ないアプリの新機能を試す場合は、BigQuery サンドボックスを設定するだけで十分な場合もあります。

しかし、ユーザー数の多い本番環境のアプリを使用する場合は、BigQuery の使用量に対する課金を有効にし、ストレージの使用量と、BigQuery へのデータの読み込みに対して料金を支払う必要があります。Firebase から開始した読み取りは課金されません。

統合を無効にする

この統合を無効にするには、Firebase コンソールで BigQuery との統合ページに移動して、カスタム セグメントを無効にします。

インポートしたセグメントを使用する

取り込まれたデータは Firebase コンソールで利用できます。これらのデータを Remote Config やアプリ内メッセージングなどのサービスで利用し、ターゲティングを行うことができます。これは、プロパティや Google アナリティクスのオーディエンスによるターゲティングと同様に機能します。

インポートしたセグメントを Notifications Composer で使用した例

「インポートしたセグメント」はターゲティング可能な属性の 1 つとして使用できます。インポートしたセグメントも選択できます。また、各セグメントに属するアプリ インスタンスの推定数が表示されます。

ターゲティング条件全体に一致するインスタンスの推定数も表示されます。ターゲティング条件を変更すると、これらの値も更新されます。

ユースケース

インポートしたセグメントを使用して、ターゲットを絞ったユーザー エクスペリエンスを作成する方法はいくつかあります。このセクションでは、この機能を使用する可能性のあるいくつかの一般的なシナリオの概要を説明します。

ユーザー グループに通知を送信する

ショッピング カートでアプリ内購入ができるアプリがあります。カスタムビルドまたはサードパーティの分析ソリューション(Google アナリティクスを利用していないソリューション)を使用すると、アプリ内のユーザーの行動に関連するさまざまな指標を収集できます。これらの指標を使用することで、カートに商品を追加した後、チェックアウトが完了していないユーザーのグループを特定できます。

たとえば、Firebase Cloud Messaging を使用して、カートに商品が入っていることをユーザーに通知する場合について考えてみましょう。「incomplete-checkout」というセグメントを作成して、これらのユーザーを追加します(ユーザーは Firebase インストール ID で識別します)。このセグメントを BigQuery にアップロードして Firebase と共有します。

このデータを Firebase に取り込むと、Notifications Composer で処理できるようになります。Notifications Composer で、「incomplete-checkout」をターゲットとする新しい通知キャンペーンを作成し、ユーザーにチェックアウトの完了を促すメッセージを送信します。

ユーザーのサブセット用にアプリを構成する

社内分析ソリューションを使用して、アプリの操作で問題が発生しているユーザーが見つかりました。問題が起きているユーザーをサポートするため、これらのユーザーに簡単なチュートリアル動画を表示するようにアプリの動作を構成することにします。

アプリに Remote Config を組み込み、アプリで「needs_help」などの名前のパラメータを使用して、チュートリアル動画を条件付きで表示できるようにします。

「troubled-users」という名前のセグメントを作成し、分析データに基づいて該当するユーザー(Firebase インストール ID で識別)を追加します。次に、このセグメントとそのメンバーを BigQuery にアップロードして、Firebase と共有します。

Firebase がこのデータを取り込むと、ターゲット可能なセグメントとして Remote Config コンソールで利用できるようになります。次に「troubled-users」を対象とする条件を作成します。この条件に対して needs_help パラメータを true に設定し、デフォルトを false に設定します。この構成を公開すると、アプリは「troubled-users」セグメントのユーザーにのみチュートリアル動画を表示します。

デバイス間のユーザーの操作を追跡する

Firebase と Google アナリティクスを使用して、レストランのレビューアプリを作成したとします。収集された指標から、多くのユーザーがモバイル デバイスとタブレットの両方からアプリにアクセスしていることがわかりました。また、レビューの閲覧はどちらのデバイスからも行われていますが、書き込みはタブレットから行われる傾向があることもわかりました。

一部のユーザーは、スマートフォンでレビューを書き始めて途中でやめていますが、おそらくこれは画面が小さいことが原因でしょう。こうしたユーザーには、タブレットで入力の続きを行うように通知を送信することにします。

これを行うには、ログインしたユーザーに対して、Google アナリティクスで内部的に生成された reviewerId を UserId として設定し、レビューの取り消しを識別するためにイベントをトリガーします。その後、アプリの Google アナリティクス データを BigQuery にエクスポートします。

このデータを BigQuery で分析することで、スマートフォンでレビューの入力を完了していないユーザーのタブレットの Firebase インストール ID を特定します。このグループに「tablets-of-users-who-cancelled-on-phone」という名前を付け、セグメントを BigQuery にアップロードして、メンバーのリストを Firebase と共有します。

Firebase がこのデータを取り込むと、Notifications Composer でターゲティング可能なセグメントとして利用できるようになります。次に、「tablets-of-users-who-cancelled-on-phone」をターゲットとする新しい通知キャンペーンを作成して、これらのユーザーにタブレットで入力を完了するように促すメッセージを送信します。