Firebase Analytics+データポータルでダッシュボードをつくる
Firebase Analytics のデータを
Google データポータル (旧: Data Studio) で表示したい場合、
まず Firebase Analytics のデータを BigQuery にインポートして加工する必要があります。
自由度は高いのですが、Google Analytics のようにはいかず、ちょっとややこしい SQL を書く必要があるので、
データポータルでデータソースを追加してポンというわけにはいかなくなりました。
なので、スクリーンビューやセッション数のようなよくある値を毎日集計してダッシュボード化するやりかたを紹介します。
前提
まず Firebase の プロジェクトの設定
> 統合
から BigQuery とリンクしておくことが必要です。
これで analytics_<ID>
というデータセットに毎日 Analytics の生イベントデータが BigQuery のテーブルとしてインポートされるようになります。
日毎に集計する SQL
よくあるプラットホームごとの昨日のスクリーンビュー数やその他主要 KPI を集計する SQL を書いてみました:
#standardSQL
WITH
-- 集計範囲 (この例では昨日分; 変更可)
event_range AS (
SELECT
DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY) AS from_date,
DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY) AS to_date
),
-- 範囲の全イベント
all_events AS (
SELECT
event_date,
platform,
user_pseudo_id,
event_name
FROM
`analytics_<あなたの Analytics の ID>.events_*`,
event_range
WHERE
_TABLE_SUFFIX
BETWEEN
FORMAT_DATE("%Y%m%d", event_range.from_date)
AND
FORMAT_DATE("%Y%m%d", event_range.to_date)
),
-- スクリーンビュー
screen_views AS (
SELECT
event_date,
platform,
COUNT(*) screen_views
FROM
all_events
WHERE
event_name = 'screen_view'
GROUP BY
event_date,
platform
),
-- ユニークユーザー
unique_users AS (
SELECT
event_date,
platform,
COUNT(DISTINCT user_pseudo_id) unique_users
FROM
all_events
WHERE
event_name = 'user_engagement'
GROUP BY
event_date,
platform
),
-- 新規ユーザー
new_users AS (
SELECT
event_date,
platform,
COUNT(DISTINCT user_pseudo_id) new_users
FROM
all_events
WHERE
event_name = 'first_open'
GROUP BY
event_date,
platform
),
-- セッション
sessions AS (
SELECT
event_date,
platform,
COUNT(*) sessions
FROM
all_events
WHERE
event_name = 'session_start'
GROUP BY
event_date,
platform
)
-- 結合
SELECT
sv.event_date,
sv.platform,
sv.screen_views,
uu.unique_users,
nu.new_users,
s.sessions
FROM
screen_views sv
INNER JOIN unique_users uu
ON sv.event_date = uu.event_date
AND sv.platform = uu.platform
INNER JOIN new_users nu
ON sv.event_date = nu.event_date
AND sv.platform = nu.platform
INNER JOIN sessions s
ON sv.event_date = s.event_date
AND sv.platform = s.platform
;
<あなたの Analytics の ID>
の部分はインポートされた BigQuery テーブルを見て自分のを入れます。
これを単に実行すれば昨日のスクリーンビュー, ユニークユーザー, 新規ユーザー, セッションの数がプラットホームごとに集計されます:
他にイベントを取りたい場合は event_name
あたりの条件を変更して真似して追加すれば OK です。
クエリの定期実行とテーブル作成
BigQuery ではクエリの定期実行をスケジュールし、自動でテーブルに結果を出力できます。今回は日毎の集計結果を日別テーブルに毎日保存することにします。
こうしておくと、データポータルで扱いやすくなりますし、毎回集計のクエリを発行するよりも転送量も節約することができます (一ヶ月分とかやるときは特に)。
まず Firebase Analytics でエクスポートされたデータセットと同じリソースと同じリージョンで集計用のデータセットを作成しておきます (たぶんリージョンをまたぐことができないので):
次にさきほどのクエリエディタ下にある クエリのスケジュール
ボタンから スケジュールされたクエリの新規作成
でクエリを定期実行するようにしてみます:
クエリ結果の書き込み先
の テーブル名
を daily_{run_time|"%Y%m%d"}
としておくと、
テーブルを daily_20191006
のように実行時の日付で日別テーブルを作成することができます。
上の設定の場合だと前日のデータのテーブルを作成しているので、run_time-24h
して前日の日付で作成します。
(例: 実行日時が 2019-10-06
なら 20191005
)
かくして日毎の集計テーブルができました。
データポータルでの表示
データポータルでダッシュボードを作る場合は、データソースとしてさっき作成した BigQuery テーブルを指定します:
このデータソースを使ってイベントの日にち (event_date
) をディメンションに、評価したい値を指標にすると時系列のグラフを作成できます:
内訳ディメンションを platform
にすれば iOS と Android のように、プラットホームごとの指標を並べて比較することもできます:
これでよくあるダッシュボードを作ることができますね。
必要な KPI を取得しておくようにすれば値を手軽にウォッチできるので便利です。
Slack で通知
あとは Slack で値を通知したりしても便利ですね。
このやり方についてはちょっと長くなるので別記事で紹介することにします
👉 つづく: https://qiita.com/mangano-ito/items/07993bbfea54988701ec
Author And Source
この問題について(Firebase Analytics+データポータルでダッシュボードをつくる), 我々は、より多くの情報をここで見つけました https://qiita.com/mangano-ito/items/5ed1e75f1779a364fa20著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .