【BigQuery】BigQueryで作成した独自セグメントを使ってFCM配信するぞ 【Firebase】

BigQuery

こんにちは。KIYONOエンジニアです。

今回はBigQueryに出力したアプリデータの高度な使い方をひとつ紹介したいと思います。

「CDP(Customer Data Platform)に興味はあるけど予算がない」

「とりあえずPOCでセグメント配信したい」

などなどデータ活用をお考えのご担当者様。

「アプリ構築はできるけど、次につながる提案ができない」

「アプリの分析はしたけど施策に活かせない」

とお考えのエンジニアの皆様。

とっておきの情報をお伝えします。

サマリー

この記事では、BigQueryで作成した独自セグメントを使って、Firebase Cloud Messaging(FCM)配信を行う方法を紹介します。

簡単なセグメントであればFirebase Analytics上で作成できますが、オフラインの情報と組み合わせたり、条件が細かな場合など、Firebase Analyticsだけでは作成が困難なセグメントってありますよね。

BigQueryでセグメントを作成することで自由自在な条件でセグメントを作成できます。

目次

  1. 前提条件
  2. Firebase Analyticsでのセグメント
  3. BigQueryで独自セグメントを作成する
    1. セグメントの要件を定義する
    2. BigQueryでセグメントクエリを実行する
  4. FirebaseでFCM配信を設定する
    1. FCM配信メッセージの作成
    2. セグメントを条件に配信を設定する
  5. 配信結果を確認する
  6. まとめ

1. 前提条件

この記事の内容を実施する場合は、以下の準備が必要です。

  • Google Cloud Platform (GCP) プロジェクト
  • Firebase Admin SDK
  • BigQuery連携が完了していること
  • install_idを取得するためのアプリ側の設定が完了していること※

※BigQuery連携データにクライアントID(=インストールID)を含める必要があります。user_pseudo_idのようにデフォルトで取得できるIDではないので実装が必要になります。

参考:クライアントIDを取得する(公式ドキュメント

2. BigQueryで独自セグメントを作成する

BigQueryで独自セグメントを作成するには、以下の手順が必要です。

  • セグメントの要件を定義する
  • BigQueryでセグメントクエリを実行する
  • セグメント結果をエクスポートする

2.1. セグメントの要件を定義する

ターゲットとなるユーザーを定義します。例:

  • ECサイトへの定期訪問者で、ここ数カ月購入がないユーザー
  • 2日連続で特定キャンペーンに応募したユーザー
  • 土曜8時頃にアプリを開くユーザー

2.2. BigQueryでセグメントクエリを実行する

定義した条件に基づいて、BigQueryでセグメントクエリを実行します。

例)

SELECT

    user_property.value.string_value AS install_id,

    hugahuga                         AS `hugahuga`

FROM

    `firebase.analytics.events_*`, UNNEST(user_peoperties) AS user_property

WHERE 0=0

    AND user_property.key = "instance_id"

2.3. セグメント結果をエクスポートする

クエリ結果を、Firebaseで利用できる形式で保存します。Firebaseがセグメントをインポートするためには以下の2つのテーブルを保存する必要があります。

データセット名:firebase_imported_segments

テーブル①:SegmentMemberships

これらのデータセット・テーブルはFirebase管理画面上から

プロジェクトの設定>統合>BigQuery>BigQueryからインポートをON

にすることで自動的に作成されます。

テーブルの説明

instance_idを一意として、segment_labelsに該当するセグメントIDを配列状に保管するテーブル。

名前 モード
instance_id STRING
segment_labels STRING REPEATED
update_time TIMESTAMP

テーブル②:SegmentMetadata

segment_label(セグメントのID)を一意として、display_nameに表示名を保存したテーブル。

名前
segment_label STRING
display_name STRING

※物理テーブルではなくViewとして保存することはできません。Viewにするとセグメントインポート時にエラーが発生します。

3. FirebaseでFCM配信を設定する

FirebaseでFCM配信を設定するには、以下の手順が必要です。

  • FCM配信メッセージの作成
  • セグメントを条件に配信を設定する

3.1. FCM配信メッセージの作成

配信するメッセージの内容を作成します。

3.2. セグメントを条件に配信を設定する

エクスポートしたセグメント結果を基に、配信条件を設定します。

ターゲットとするユーザーを選択する際にインポートしたセグメントを使用することでBigQueryにてdisplay_nameでつけた名前のセグメントが選択できるようになります。

4. 配信結果を確認する

配信結果はFirebase 管理画面から確認できます。確認できる指標は以下です。

  • 送信数
  • 受信数(全体レポートのみ)
  • 表示回数(全体レポートのみ)
  • 開いた数
  • コンバージョン数(個別レポートのみ)

5. まとめ

Firebase AnalyticsとBigQueryで、最小限のアプリ改修とCDP導入なしに、独自セグメントへのメッセージ配信が可能です。


いかがだったでしょうか。今回はFirebase AnalyticsとBigQueryを使った独自セグメントへのメッセージ配信の方法をお伝えしました。

パーソナライゼーション施策やCDP導入の重要性は理解しつつ、アプリ改修や構築に伴うコストや期間の長さから、投資判断に迷われるケースは少なくありません。

もしアプリのインフラにFirebaseを選定されているのであれば、一度試してみてはいかがでしょうか?

弊社ではGA4/Firebase関連のマーケティング支援実績が数多くあります。マーケティングを見据えたイベント設計からデータ基盤構築、マーケティング施策の実行まで一気通貫で支援させていただいています。

データの利活用でお困りのことがありましたら、ぜひお気軽にご相談ください!

お問い合わせフォーム:https://www.kiyono-co.jp/contact-us

コメント

タイトルとURLをコピーしました