如何计算连接 BigQuery 的 GA4 中的“参与率”?

问题描述 投票:0回答:1

描述

  • 我已将 GA4 连接到 BigQuery
  • bigquery中的GA4数据包括:
    ga_session_id
    page_location
    user_pseudo_id
    session_engaged
    、...
  • 我想使用python客户端api从bigquery查询数据。
  • 然后使用来自bigquery的数据来计算每个页面的
    engagement rate
    ,就像GA4报告一样。

尝试

根据engagement rate

定义:

engagement_rate = engaged_session_nums / session_nums * 100%

我创建了一个数据框,其中包括

ga_session_id
page_location
user_pseudo_id
session_engaged
session_engaged
是布尔类型。

我使用以下代码来计算

engagement rate

(不确定

engaged_session_nums
如何计算)

# the session = ga_session_id + user_pseudo_id
df['pseudo_with_session'] = df['ga_session_id'].astype(str) + df['user_pseudo_id']

# not sure engaged_session_nums how to calculate
df['engaged_session_nums'] = df.groupby(['page_location'])['session_engaged'].transform(lambda x: (x == '1').sum())

# calculate the session nums for each page
df['total_session_nums'] = df.groupby('page_location')['pseudo_with_session'].transform('nunique')

df['engaged_rate'] = df['engaged_session_nums'] / df['total_session_nums'] * 100

结果

结果超过100%,与GA4报告有很大不同。

页面位置 参与率
/ 26.2%
/zh/ 117%
... ...

预期(GA4 报告)

页面位置 参与率
/ 75.22%
/zh/ 73.34%
... ...
python dataframe google-bigquery google-analytics google-analytics-4
1个回答
0
投票

计算用户参与的会话数与每个用户的最大会话数的比率。

对 session_engged 求和(如果没有参与会话,则该值将为 0;如果有参与会话,则该值为 1。对于 session_start 事件中的每个 user_pseudo_id。 从 session_start 事件中查找每个 user_pseudo_id 的最大 session_number 。 (它计算特定 user_pseudo_id 的会话数) 将总 session_engged 除以每个用户的最大 session_number。 这就是你想要的:

WITH session_data AS (
    SELECT
        user_pseudo_id,
        MAX((SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_number')) AS max_session_number,
        SUM((SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'session_engaged')) AS total_session_engaged
    FROM
        `yoyr_dataset_id`
    WHERE
        event_name = 'session_start'
    GROUP BY
        user_pseudo_id ) SELECT
    user_pseudo_id,
    IF(max_session_number = 0, 0, total_session_engaged / max_session_number) AS engagement_ratio FROM
    session_data;
© www.soinside.com 2019 - 2024. All rights reserved.