Большой запрос Google - Аналитика Firebase - Закрытая воронка для просмотра экрана (параметры) - PullRequest
0 голосов
/ 22 февраля 2019

Я хотел бы получить закрытую воронку для моих представлений экрана 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 голосов
/ 03 апреля 2019

Я нашел решение:

    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'
  )
)
...