Firebase закрытые воронки с параметрами - PullRequest
0 голосов
/ 30 ноября 2018

Я видел различные закрытые воронки Firebase примеры в Интернете, но ни один из них не находится на уровне параметров.

Вопрос:

  • Я хотел бы создать закрытую пользовательскую воронку на основе значений параметров событий Firebase.
  • В частности, я хотел бы создать закрытую пользовательскую воронку на основе следующих 3 шагов воронки:
    • first_open (пользователь открывает приложение в первый раз)
    • Tutorial_LessonStarted с ключом параметра LessonNumber и значением параметра 1
    • Tutorial_LessonStarted с параметром-key LessonNumber и значение параметра 2

(ОБНОВЛЕНИЕ) Я переместил свой исходный тест-запрос в раздел ответов.

1 Ответ

0 голосов
/ 04 декабря 2018
SELECT
    e0.event_date,
    COUNT(DISTINCT e0.user_pseudo_id) AS step1_firstOpeners,
    COUNT(DISTINCT e1_user) AS step2_lesson1Started,
    COUNT(DISTINCT e2_user) AS step3_lesson2Started
FROM `projectID.analytics_XXXX.events_*` AS e0
LEFT JOIN (SELECT
                event_name AS e1_eventname,
                e.user_pseudo_id AS e1_user,
                event_timestamp AS e1_ts
           FROM `projectID.analytics_XXXX.events_*` AS e, UNNEST(e.event_params) as eventparams
           WHERE platform = "ANDROID"
                AND event_name = "Tutorial_LessonStarted"
                AND eventparams.key = "LessonNumber"
                AND eventparams.value.string_value  = "1")
    ON e0.user_pseudo_id = e1_user AND e0.event_timestamp < e1_ts AND e1_eventname = "Tutorial_LessonStarted"
LEFT JOIN (SELECT 
                event_name AS e2_eventname,
                e.user_pseudo_id AS e2_user, 
                event_timestamp AS e2_ts
           FROM `projectID.analytics_XXXX.events_*` AS e, UNNEST(e.event_params) as eventparams
           WHERE platform = "ANDROID"
                AND event_name = "Tutorial_LessonStarted" 
                AND eventparams.key = "LessonNumber"
                AND eventparams.value.string_value  = "2")
    ON e1_user = e2_user AND e2_ts > e1_ts AND e2_eventname = "Tutorial_LessonStarted" 

WHERE 
    e0.event_name = 'first_open' 
    AND user_first_touch_timestamp >= 1541808000000000 AND user_first_touch_timestamp < 1541894400000000 -- 10 November 2018
    AND _TABLE_SUFFIX = '20181110'
AND platform = "ANDROID"
GROUP BY 1
ORDER BY 1 DESC
...