带参数的Firebase闭式漏斗

带参数的Firebase闭式漏斗,firebase,google-bigquery,firebase-analytics,Firebase,Google Bigquery,Firebase Analytics,我在互联网上看到过各种Firebase关闭漏斗,但没有一种是在参数级别 问题: 我想根据Firebase事件参数值创建一个封闭的用户漏斗。 更具体地说,我想根据以下3个漏斗步骤创建一个封闭的用户漏斗: first_open用户首次打开应用程序 教程\u Lesson从参数键LessonNumber和参数值1开始 教程\u Lesson从参数键LessonNumber和参数值2开始 更新我将原始测试查询移到了答案部分。好吧,至少部分问题是您得到了e0.event\u timestamp>e1\u

我在互联网上看到过各种Firebase关闭漏斗,但没有一种是在参数级别

问题:

我想根据Firebase事件参数值创建一个封闭的用户漏斗。 更具体地说,我想根据以下3个漏斗步骤创建一个封闭的用户漏斗: first_open用户首次打开应用程序 教程\u Lesson从参数键LessonNumber和参数值1开始 教程\u Lesson从参数键LessonNumber和参数值2开始
更新我将原始测试查询移到了答案部分。

好吧,至少部分问题是您得到了e0.event\u timestamp>e1\u ts,如果e0事件第一次打开,这可能永远不会是真的。你可能想用我更新的代码。请查看下面的答案部分。
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