使用 BigQuery 检查个性化数据

向用户分配个性化后,Remote Config 个性化会记录 personalization_assignment Analytics 事件,让您可以使用 BigQuery 检查和分析个性化事件及关联事件。

以下部分介绍了如何为 Analytics 事件启用 BigQuery Export 以及如何存储个性化事件,并提供了一些基本查询来帮助您上手。

为 Google Analytics for Firebase 启用 BigQuery Export

如果您使用的是 Spark 方案,则可以使用 BigQuery 沙盒免费访问 BigQuery,但需遵循沙盒限制。如需了解详情,请参阅价格和 BigQuery 沙盒

首先,请确保将 Analytics 数据导出到 BigQuery:

  1. 打开集成标签页,您可以在 Firebase 控制台中使用 > 项目设置访问该标签页。
  2. 如果您已经将 BigQuery 与其他 Firebase 服务搭配使用,请点击管理。否则,请点击关联
  3. 查看如何将 Firebase 关联至 BigQuery,然后点击下一步
  4. 配置集成部分中,启用 Google Analytics 切换开关。
  5. 选择区域,然后选择导出设置。

  6. 点击关联到 BigQuery

根据您选择导出数据的方式,这些表最多可能需要一天的时间才能供您使用。如需详细了解如何将项目数据导出到 BigQuery,请参阅将项目数据导出到 BigQuery

接下来,让我们访问并检查 BigQuery 中的个性化事件。

使用 BigQuery 访问 Remote Config 个性化数据

若要查询实验的分析数据,请执行以下操作:

  1. Google Cloud 控制台中打开 BigQuery。您还可以使用页面底部的 View your raw events in BigQuery(在 BigQuery 中查看原始事件)链接,直接从 Analytics 事件打开它。
  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 Analytics 表中,并存储在 personalization_assignment 事件中。

个性化事件中提供的基本字段与 [GA4] BigQuery Export 架构中所述的任何 Analytics 事件相同。您将主要关注 user_pseudo_id(它可用于区分不同的用户)、事件时间戳和其他用户属性。

特定于个性化的详细信息存储在 event_params 字段中,下表对其进行了说明:

参数 数据类型 说明
personalization_id STRING 提供已分配的个性化通用唯一标识符 (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 Analytics 会话 ID。如需了解详情,请参阅关于会话。您可以使用此参数将 personalization_assignment 事件与其他 Analytics 事件相关联。
ga_session_number INTEGER 提供 Google Analytics 会话编号。如需了解详情,请参阅关于会话

示例查询

您可以使用如下所示的 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