inFablic | Fablic, inc. Developer's Blog.

フリマアプリ フリル (FRIL) を運営する Fablic の公式開発者ブログです。Fablic のデザイナー・エンジニア・ディレクターが情報発信していきます。

CM期間中に放送地域からアプリをインストールしたユーザーのIDをリストアップする(Firebase + BigQuery)

こんにちは。shobyです。

フリルでは現在全国でCMを放送しており、各CMの効果計測をする必要が生じています。

今回は、より詳細なCMの効果を分析するために、CM期間中に放送地域からアプリをインストールしたユーザーのIDをリストアップする方法をお伝えします。

概要

  • 計測ツールには重要な情報を渡さず、user_idで照合する
  • Firebaseにuser_idを保存する
  • CM期間中に放送地域からインストールしたユーザーのIDを取得する
  • 取得したuser_idの活用

計測ツールには重要な情報を渡さず、user_idで照合する

フリルでは、Firebaseなどの計測ツールを、ユーザーの行動ログを記録するために利用していますが、ユーザー情報、出品情報、取引情報などの重要なデータは計測ツールには渡さず、user_idのみを渡すというポリシーで運用しています。

そのため、CMの影響でインストールしたユーザーが、どれだけ出品や購入をしたか、といった情報を取得するためには、user_idをベースにFirebaseのインストールイベントと、自社データを照合する必要がありました。

Firebaseにuser_idを保存する

Firebaseにはアプリケーション側のuser_idを保存する機能がついており、保存したuser_idはBigQuery上からも参照できます。

以下はiOSでの実装例です。1行コードを書くだけで対応できます。

FIRAnalytics.setUserID(userId)

CM期間中に放送地域からインストールしたユーザーのIDを取得する

FirebaseをBigQueryと組み合わせて使うことで、CM期間中に放送地域からインストールしたユーザーのIDを取得することができます。

Firebaseに保存したuser_idは、BigQuery上では、 user_dim.user_id というフィールドに含まれており、アプリを初回起動した時刻は user_dim.first_open_timestamp_micros に含まれています。

また、アクセス元地域の情報も含まれており、大陸、国、地域、市区町村、という4つの段階で地域を判定することができます。

フィールド名 データ型 説明
user_dim.user_id STRING setUserId API で設定したユーザー ID。
user_dim.first_open_timestamp_micros INTEGER ユーザーがアプリを始めて起動した時間(マイクロ秒単位)。
user_dim.geo_info.continent STRING IP アドレスに基づく、イベントのレポート元の大陸。
user_dim.geo_info.country STRING IP アドレスに基づく、イベントのレポート元の国。
user_dim.geo_info.region STRING IP アドレスに基づく、イベントのレポート元の地域。
user_dim.geo_info.city STRING IP アドレスに基づく、イベントのレポート元の市区町村。

BigQuery Export のスキーマより一部抜粋

今回は、東京で、CM放送期間である6月中にインストールしたユーザーのIDをリストアップすることを考えます。

該当期間に初回起動したユーザーを新規インストールユーザーだと仮定すると、以下のようなクエリで集計することができます。

SELECT
  user_dim.user_id as user_id
FROM
  your_table_name
WHERE
  user_dim.geo_info.country = 'Japan'
  AND user_dim.geo_info.region = 'Tokyo'
  AND STRFTIME_UTC_USEC(DATE_ADD(user_dim.first_open_timestamp_micros, 9, 'HOUR'), '%Y-%m') = '2017-06'
GROUP BY user_id

Firebaseのイベントログの時刻はUTCで保存されており、DATE_ADDという関数でJSTに変換する必要があります。

また、ミリ秒単位のtimestampで保存されているため、STRFTIME_UTC_USECという関数を使うと任意のフォーマットの文字列に変換することができます。

取得したuser_idの活用

取得したuser_idを活用することにより、CMの影響があった出品ユーザー、購入ユーザーを特定することができます。

これにより、インストール数やアクセス数といった分析しやすいデータだけでなく、出品数や購入数といったより詳細なデータの分析も行うことができるようになりました。

まとめ

フリルでは、計測ツールには重要なデータは渡さず、user_idのみを渡すポリシーで運用しています。 Firebaseにはuser_idを保存する機能があり、BigQuery上からも参照することができます。

FirebaseとBigQueryを利用することにより、CM期間内に放送地域からインストールしたユーザーのIDを取得することができるようになりました。 これにより、フリルではインストール数やアクセス数といった分析しやすい指標だけでなく、出品数や購入数といったより詳細なデータの分析も行うことができるようになりました。