LoginSignup
2
0

More than 3 years have passed since last update.

Firebase Analyticsのカスタムイベントのデータを今月,先月で絞ってredashで見る

Last updated at Posted at 2019-07-24

スクリーンショット 2019-07-24 15.46.05.png

Firebaseでイベントをログに記録したものをRedashで表示したくなり、一応できたのでメモ。

Firebase の BigQuery Exportの機能を使い、アナリティクスのデータとアプリのデータの統合を行うことができます。

詳しいFirebaseのデータをBigQueryに入れる方法はこちらのBigQuery を Firebase にリンクするから確認してください。

RedashでBigQueryをデータソースに追加するにはこちらのBigQuery Setup
をご確認ください。

Firebaseのデータソースが選択できるようになると、下記のような日付ごとに作成されたイベントデータが確認できると思います。

スクリーンショット 2019-07-24 16.05.18.png

詳しくは下記を参考にしてください。
BigQuery Export のスキーマ

それに対してクエリを書いていきますが、如何せんBigQueryも書いたことがなかったため、日付ごとのテーブルとは、unionしまくるのか?
と思ったけど、BigQueryにはワイルドカード テーブルという機能がありそれを用いれば今月、先月のデータが出せるということがわかりました。
(ワイルドカード テーブルを使用した複数テーブルに対するクエリ)

例えば、今月のhogeイベントのカスタムパラメータを取得したい場合は、

-- 今月のPVデータ
SELECT JSON_EXTRACT(TO_JSON_STRING(event_params, TRUE), '$[3].value.string_value') AS hoge,
      count(*) AS PV
FROM `analytics_xxxxxxxx.events_*`
WHERE
  _TABLE_SUFFIX > CONCAT(FORMAT_DATE("%Y%m",(DATE_TRUNC(CURRENT_DATE('Asia/Tokyo'), MONTH))), "01")
AND event_name='my_custom_event'
GROUP BY JSON_EXTRACT(TO_JSON_STRING(event_params, TRUE), '$[3].value.string_value')

このようにすれば今月の1日以降のテーブルを対象に、イベントを取得することができます。
カスタムイベントのパラメータはevent_paramsカラムにJSONで入っているのでJSON_EXTRACTにて取得することができます。

先月も同じ要領です。

-- 先月のPVデータ
SELECT JSON_EXTRACT(TO_JSON_STRING(event_params, TRUE), '$[3].value.string_value') AS hoge,
       count(*) AS PV
FROM `analytics_xxxxxxxx.events_*`
WHERE _TABLE_SUFFIX > CONCAT(FORMAT_DATE("%Y%m",DATE_SUB(DATE_TRUNC(CURRENT_DATE('Asia/Tokyo'), MONTH), INTERVAL 1 DAY)), "01")
  AND _TABLE_SUFFIX < CONCAT(FORMAT_DATE("%Y%m",(DATE_TRUNC(CURRENT_DATE('Asia/Tokyo'), MONTH))), "01")
  AND event_name='my_custom_event'
GROUP BY JSON_EXTRACT(TO_JSON_STRING(event_params, TRUE), '$[3].value.string_value')

ワイルドカード テーブルには一定ルール的なのがあるのですが、こちらのドキュメントを読むと理解できます。

あとはRedashのクエリリザルトを使って、アプリのデータと結びつけることでFirebaseのイベントデータと、アプリのデータを紐づけることができ、
具体的なデータの分析を行うことができます。

めでたしめでたし。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0