BigQuery でパーソナライズ データを検査する

ユーザーにパーソナライズが割り当てられている場合、Remote Config のパーソナライズによって personalization_assignment アナリティクス イベントがログに記録されます。これにより、BigQuery でパーソナライズ イベントとその関連イベントを検査して分析できます。

以降のセクションでは、アナリティクス イベントの BigQuery へのエクスポートを有効にする方法と、パーソナライズ イベントの保存方法について説明します。また、最初に使用できる基本的なクエリについても説明します。

Firebase 向け Google アナリティクスで BigQuery Export を有効する

Spark プランをご利用の場合は、BigQuery サンドボックスを使用して、サンドボックスの制限内で BigQuery に無料でアクセスできます。詳細については、料金と BigQuery サンドボックスをご覧ください。

まず、アナリティクス データを BigQuery にエクスポートできるようにします。

  1. [統合] タブを開きます。このタブにアクセスするには、Firebase コンソールで、 > [プロジェクトの設定] の順に選択します。
  2. 他の Firebase サービスですでに BigQuery を使用している場合は、[管理] をクリックします。それ以外の場合は、[リンク] をクリックします。
  3. [Firebase と BigQuery のリンクについて] を確認し、[次へ] をクリックします。
  4. [統合を構成する] セクションで、[Google アナリティクス] の切り替えボタンをオンにします。
  5. リージョンを選択し、エクスポートの設定を選択します。

  6. [BigQuery にリンク] をクリックします。

データのエクスポート方法によっては、テーブルが使用可能になるまでに 1 日かかることがあります。プロジェクト データを BigQuery にエクスポートする詳しい方法については、プロジェクト データを BigQuery にエクスポートするをご覧ください。

次に、BigQuery でパーソナライズ イベントにアクセスして検査します。

BigQuery を使用して Remote Config のパーソナライズ データにアクセスする

テストの分析データをクエリで取得するには:

  1. Google Cloud コンソールで BigQuery を開きます。また、ページ下部にある BigQuery で未加工のイベントを表示するリンクを使用して、アナリティクス イベントから直接開くこともできます。
  2. Firebase プロジェクトを選択して開き、analytics_ANALYTICS_PROPERTY_ID エントリを開いて events_ をクリックします。

    Cloud コンソールでパーソナライズ イベントにアクセスする

  3. [クエリ] プルダウンから、[In a new tab] を選択します。

    自動生成されたサンプルクエリが表示されます。

  4. パーソナライズ イベントとその関連データを表示するには、クエリを更新して personalization_assignment イベントを選択します。次のサンプルクエリは、特定の日付のシャードに対する完全なパーソナライズ割り当てイベントを返します。結果を 10 個に制限されています。

    # Select all personalization_assignment events
    SELECT *
    FROM `PROJECT_NAME.analytics_ANALYTICS_PROPERTY_ID.events_DATE_SHARD`
    WHERE event_name = 'personalization_assignment'
    LIMIT 10
    

    ヒント: シャーディングされたテーブルではなく、すべてのイベント テーブルを検索するには、イベント テーブルの日付をアスタリスクに置き換えます(例: PROJECT_NAME.analytics_ANALYTICS_PROPERTY_ID.events_*)。これは、テスト以外のシナリオや大規模なデータセットにはおすすめしません。

  5. クエリ コンポーザで [クエリを実行] を選択します。結果が下のペインに表示されます。

次のセクションでは、パーソナライズ割り当てイベントの内容について詳しく説明します。

BigQuery にエクスポートされるパーソナライズ データの概要

パーソナライズ データは、BigQuery の Google アナリティクス テーブルに含まれ、personalization_assignment イベントに保存されます。

パーソナライズ イベントで提供される基本フィールドは、[GA4] BigQuery Export スキーマで説明されているアナリティクス イベントと同じです。重要になるのは、user_pseudo_id(別のユーザーと区別するために使用)、イベントのタイムスタンプ、その他のユーザー プロパティです。

パーソナライズ固有の詳細は event_params フィールドに格納されます。詳細を次の表に示します。

パラメータデータ型説明
personalization_id STRING 割り当てられたパーソナライズの Universally Unique Identifier(UUID)。
group STRING ユーザーがパーソナライズ グループ(P13N)とベースライン グループ(BASELINE)グループのどちらに割り当てられたかを示します。
arm_index INTEGER ユーザーに割り当てられた代替値(0~4 の整数)。
arm_key STRING パーソナライズで使用されるパラメータ名。
arm_value STRING パーソナライズによって割り当てられた代替値の文字列。
engaged_session_event INTEGER ユーザーが関わったセッションの数。詳しくは、セッションについてをご覧ください。
firebase_event_origin STRING イベントの起点。personalization_assignment イベントの場合、これは常に fp になります。
firebase_screen_class STRING パーソナライズ割り当てが行われたときにユーザーがアクティブだった画面のクラス名。詳しくは、自動的に収集されるイベントをご覧ください。
firebase_screen_id INTEGER パーソナライズ割り当てが行われたときにユーザーが行っていた画面の ID。詳しくは、自動的に収集されるイベントをご覧ください。
first_open_time STRING ユーザーが初めてアプリを開いたときのタイムスタンプ(UTC ミリ秒単位)。詳しくは、自動的に収集されるイベントをご覧ください。
ga_session_id INTEGER Google アナリティクスのセッション ID。詳しくは、セッションについてをご覧ください。これを利用して、personalization_assignment イベントを他のアナリティクス イベントと関連付けることができます。
ga_session_number INTEGER Google アナリティクスのセッション番号。詳しくは、セッションについてをご覧ください。

クエリの例

次のような SQL ステートメントを使用して、personalization_assignment イベントからパーソナライズ固有のパラメータを抽出します。

    # Expand nested personalization parameters
    SELECT
     timestamp_micros(event_timestamp) AS event_time,
     user_pseudo_id,
     (
       SELECT event_params.value.string_value
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'group'
     ) AS personalization_group,
     (
       SELECT event_params.value.string_value
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'personalization_id'
     ) AS personalization_id,
     (
       SELECT event_params.value.string_value,
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'arm_key'
     ) AS arm_key,
     (
       SELECT event_params.value.string_value
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'arm_value'
     ) AS arm_value,
     (
       SELECT event_params.value.int_value
       FROM UNNEST(event_params) event_params
       WHERE event_params.key = 'ga_session_id'
     ) AS ga_session_id,
    FROM `PROJECT_NAME.analytics_ANALYTICS_ACCOUNT_ID.events_DATE_SHARD`
    WHERE event_name = 'personalization_assignment'
    LIMIT 10