使用 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