Re:dash에서 Firebase Analytics의 BigQuery에서 코호트를 표시하는 방법

FirebaseAnalytics를 사용하고 있습니까? 무료로 여기까지 해주는 것은 꽤 고맙습니다.
나는 특히 Retension 페이지를 잘 보지만 여기에서는 필터링 할 수 없으며 새로운 사용자에 대한 코호트 만 볼 수 있습니다.
신규 유저 뿐만이 아니라, 어느 시점에서 특정 상태였던 사람의 계속율을 보고 싶은 경우가 있었기 때문에, 처음에 신규 유저에 관한 코호트를 Re:dash로 재현하기로 했습니다.

1. 쿼리 만들기



코호트를 보려면 다음 네 개의 숫자가 필요합니다. ( 참고문헌 )
  • date (획득일)
  • past_days (경과 일수)
  • user_count (date, past_days 당 사용자 수)
  • total_count (획득일 인원수 (모수))

  • 실제 쿼리는 여기입니다. 기간은 어제부터 28일을 받
    WITH first_counts AS
      (SELECT DATE(TIMESTAMP_MICROS(user_first_touch_timestamp), 'Asia/Tokyo') AS first_open_date,
              count(DISTINCT user_pseudo_id) AS total_count
       FROM `ninarubaby.analytics_164116869.events_*`
       WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
         AND device.operating_system = "IOS"
       GROUP BY first_open_date),
         cohorts AS
      (SELECT DATE(TIMESTAMP_MICROS(user_first_touch_timestamp), 'Asia/Tokyo') AS date,
              DATE_DIFF(DATE(TIMESTAMP_MICROS(event_timestamp), 'Asia/Tokyo'), DATE(TIMESTAMP_MICROS(user_first_touch_timestamp), 'Asia/Tokyo'),DAY) AS past_days,
              count(DISTINCT user_pseudo_id) AS user_count
       FROM `ninarubaby.analytics_164116869.events_*`
       WHERE _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
         AND device.operating_system = "IOS"
         AND DATE(TIMESTAMP_MICROS(user_first_touch_timestamp), 'Asia/Tokyo') >= DATE_SUB(CURRENT_DATE(), INTERVAL 28 DAY)
       GROUP BY past_days, date )
    SELECT date, past_days,
                 user_count,
                 total_count
    FROM first_counts
    INNER JOIN cohorts ON first_counts.first_open_date = cohorts.date
    WHERE past_days > 0
    

    date, past_days, user_count는 단번에 버리고, 따로 취한 total_count를 inner join하고 있습니다.
    firebase analytics의 설정에 의합니다만, 당사에서는 일본 시간으로 설정하고 있었으므로 timestamp형에서 date형으로 변환할 때에 timezone(Asia/Tokyo)를 지정하고 있습니다.past_days > 0 를 표시하지 않으면 일부 표시가 이상해졌기 때문에 일단 응하고 있습니다만, 수중에서 확인해 문제 없으면 삭제해도 좋다고 생각합니다.

    2. 코호트 표시



    그럼 실제로 시각화해보자
  • Re:dash에서 New Visualization 클릭
  • 다음과 같이 설정
  • Visualization Type: Cohort
  • Date: date
  • Strage: past_days
  • Bucket Popuration Size: total_count
  • Stage Value: user_count

  • 저장을 클릭하십시오



  • 그러면 아래와 같은 화면을 만들 수 있습니다 (실제 데이터는 보이지 않으므로 이미지도입니다 w)


    마지막으로



    BigQuery에 export해 주면, 나중에 어떻게든 될 것이 쉽습니다.
    또, BigQuery이므로, 데이터가 커도 참을 수 있는 시간내에서 돌아와 주는 것도 기쁜 곳입니다.
    초기 앱이라면 BigQuery에 export해도 타다 같은 가격으로 사용할 수 있으므로 우선 export 해 두는 것을 추천합니다.
    그럼 좋은 데이터 라이프

    좋은 웹페이지 즐겨찾기