firebase - BigQuery Crashlytics - 无崩溃用户/会话
问题描述
我已将我的 firebase crashlytics 数据链接到 bigquery 并设置了 google 提供的数据工作室模板。除了我的仪表板所需的最重要指标之外,那里有很多很棒的数据:无崩溃用户和无崩溃会话百分比。
在我可以用来计算这个的模式中没有什么突出的。
有什么想法可以让我得到这个值吗?它显示在 Firebase 仪表板中,因此它必须可用..
解决方案
我查看了文档,发现event_name='app_exception'
. 有了它,您可以编写如下查询
WITH userCrashes AS (
SELECT user_pseudo_id, MAX(event_name = 'app_exception') hasCrash
FROM `firebase-public-project.analytics_153293282.events_20181003`
GROUP BY 1
)
SELECT
IF(hasCrash,'crashed','crash-free') crashState,
COUNT(DISTINCT user_pseudo_id) AS users,
ROUND(COUNT(DISTINCT user_pseudo_id) / SUM(COUNT(DISTINCT user_pseudo_id)) OVER (),2) AS userShare
FROM userCrashes
GROUP BY 1
但是事件参数中还有一个标志“致命”。在示例数据中,它总是正确的,但如果你想尊重它,你可以做类似的事情
WITH userCrashes AS (
SELECT
user_pseudo_id,
MAX(event_name = 'app_exception') hasCrash,
MAX(event_name = 'app_exception'
AND (select value.int_value=1 from unnest(event_params) where key='fatal')
) hasFatalCrash
FROM `firebase-public-project.analytics_153293282.events_20181003`
GROUP BY 1
)
SELECT
IF(hasCrash,'crashed','crash-free') crashState,
IF(hasFatalCrash,'crashed fatal','crash-free') fatalCrashState,
COUNT(DISTINCT user_pseudo_id) AS users,
ROUND(COUNT(DISTINCT user_pseudo_id) / SUM(COUNT(DISTINCT user_pseudo_id)) OVER (),2) AS userShare
FROM userCrashes
GROUP BY 1,2
免责声明:我从未使用过 firebase,所以这一切都只是基于文档和示例数据。不过,希望它有所帮助。