Firebase-BigQuery A/B-Test 目标分析

问题描述

Firebase 有这个简洁的小功能,可以自动生成 sql 以确定 A/B 测试实验的每个变体记录的分析事件的事件计数。

SELECT
    "Experiment_Name" AS experimentName,CASE userProperty.value.string_value
        WHEN "0" THEN "Baseline"
        WHEN "1" THEN "Variant A"
        WHEN "2" THEN "Variant B"
        WHEN "3" THEN "Variant C"
        WHEN "4" THEN "Variant D"
    END AS experimentvariant,event_name as eventName,COUNT(*) AS count
FROM
    `<id>.events_*`,UNnesT(user_properties) AS userProperty
WHERE
    (_TABLE_SUFFIX between '20210625' AND '20210721')
    AND userProperty.key = "firebase_exp_number"
GROUP BY experimentvariant,eventName

我想解决的问题的上下文:鉴于 Firebase A/B 测试控制台的当前限制,我想制定一个解决方案:

  • 拉取当前 CVR 限制 6 之外的事件
  • 根据事件计数提取用户
  • 通过事件参数过滤这些事件

具体问题: 我想知道是否可以进一步优化下面的代码示例?我已经通过在顶部执行 SELECT * 并在底部添加 WHERE 子句尝试了一些优化。

with base AS (
    SELECT *
    FROM `<id>.analytics_<number>.events_*`
    WHERE (_TABLE_SUFFIX between '20210625' AND '20210721')
)

SELECT
    event_date AS _date,"Experiment_Name" AS experimentName,COUNT(event_name) AS event_count,COUNT(disTINCT user_pseudo_id) AS event_users_distinct,ROUND(COUNT(event_name)/COUNT(disTINCT user_pseudo_id),2) AS _avg
FROM
    base,UNnesT(user_properties) AS userProperty,UNnesT(event_params) AS param    
WHERE
    userProperty.key = "firebase_exp_number"
    AND platform = "ANDROID"
    AND (
        param.key = "firebase_screen" 
        AND event_name = "screen_view"
        AND param.value.string_value = "specific_screen_name"
        )
    AND app_info.version = "0.0.1"
GROUP BY _date,experimentvariant,eventName

提前致谢:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)