BigQuery Crashlytics - бесплатные пользователи / сессии
Я связал свои данные о сбоях Firebase с BigQuery и настроил шаблоны студии данных, предоставляемые Google. Там много отличных данных, кроме самых важных показателей, необходимых для моей панели: без сбоя пользователей и без сессий в процентах.
Ничто не выделяется в схеме, которую я мог бы использовать для расчета этого.
Любые идеи, как я мог бы получить это значение? Он отображается на информационной панели Firebase, поэтому он должен быть доступен..
0 ответов
Я посмотрел в документации и нашел 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, так что все это только на основе документации и примеров данных. Надеюсь, это поможет.