Google大查询-Firebase分析-屏幕视图(参数)的封闭渠道

时间:2019-02-22 08:04:07

标签: sql firebase google-bigquery firebase-analytics

我想为我的X屏幕视图(这是事件screen_view的参数)获得一个封闭的程序

我发现本教程非常好-https://medium.com/firebase-developers/how-do-i-create-a-closed-funnel-in-google-analytics-for-firebase-using-bigquery-6eb2645917e1,但这仅适用于带有事件的封闭渠道。

我想得到这个:

event_name   event_param    count_users
screen_view  screen_name_1  100
screen_view  screen_name_2  50
screen_view  screen_name_3  20
screen_view  screen_name_4  5

我试图将本教程中提供的代码更改为事件参数,但到现在我不知道下一步该怎么做。

SELECT *,
IF (value.string_value = "screen_name1", user_pseudo_id, NULL) as funnel_1, 
IF (value.string_value = "screen_name1" AND next_event = "screen_name2", user_pseudo_id, NULL) AS funnel_2
FROM (
  SELECT p.value.string_value, user_pseudo_id , event_timestamp,
  LEAD(p.value.string_value, 1) OVER (PARTITION BY user_pseudo_id ORDER BY event_timestamp) AS next_event
  FROM `ProjectName.analytics_XX.events_20190119` as t1, UNNEST(event_params) as p
  WHERE (p.value.string_value = "screen_name1" OR p.value.string_value = "screen_name2")
  ORDER BY 2,3
  LIMIT 100
)

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我找到了解决方法:

    SELECT COUNT(DISTINCT funnel_1) as f1_users, COUNT(DISTINCT funnel_2) as f2_users FROM (
  SELECT *,
  IF (param.value.string_value = "screen_name1", user_pseudo_id, NULL) AS funnel_1,
  IF (param.value.string_value = "screen_name1" AND next_screen = "screen_name2", user_pseudo_id, NULL) AS funnel_2
  FROM (
    SELECT TIMESTAMP_MICROS(event_timestamp), param, user_pseudo_id,
      LEAD(param.value.string_value, 1) OVER (PARTITION BY user_pseudo_id ORDER BY event_timestamp) as next_screen
    FROM `ProjectName.analytics_XX.events_20190119`, unnest(event_params) as param
    WHERE 
      event_name = "screen_view" and 
      param.value.string_value IN ("screen_name1", "screen_name2")
      AND _TABLE_SUFFIX BETWEEN '20190205' AND '20190312'
  )
)