はじめに
- この記事はオールアバウトアドベントカレンダー6日目の記事です。
- これまでモバイルアプリ(Android, iOS)の集計にGoogleアナリティクスSDKを利用していたのですが、2019年10月にGoogleアナリティクス開発者サービスSDKが終了 しました(Googleアナリティクス 360 のユーザーのプロパティには影響はありません)
- 今後のモバイルアプリ向けの集計は、Firebase SDKを利用して集計するFirebase Analyticsに移行する必要があります
- それに伴いFirebase Analyticsに移行したのですが、Universal Links/App Linksでモバイルアプリを起動したときのイベント数を分析する方法がわからなかったので、調べた結果を共有します
※仕様が変更される場合もあるので、必ず公式のマニュアルを参照しましょう!
導入:Universal Links/App Linksとは
本記事ではあまり詳細に説明しませんが、ざっくり説明すると、Webとアプリ(iOS,Android)に対応しているサービスにおいて、Webの特定のURLにアクセスすると、下記のような動作をする仕組みのことです。
- アプリがインストールされている場合→アプリが起動する
- アプリがインストールされていない場合→Webページが開かれる
iOSではUniversal Links, AndroidではApp Linksと呼ばれています。
実装方法などは公式のドキュメントをご覧ください。
Universal Links - Apple Developer
Android アプリリンクの処理 | Android Developers
結論:Universal Links/App Linksでアプリを起動したとき、firebase_campaignというイベントが自動計測される
いきなり結論ですが、Firebase Analyticsにおいて、Universal Links/App Linksでモバイルアプリを起動したときのイベントは、firebase_campaign というイベント名で計測されます。
実は公式のドキュメントをちゃんと読むとしっかり書いてあります。
ユニバーサル リンクは、utm パラメータ(utm_source、utm_medium、utm_campaign)を含めるように設定することができます。関連データは [アトリビューション] レポートに表示されます。
ユニバーサル リンクの例:
http://my.app.link?utm_campaign=myappcampaign&utm_source=google&utm_medium=cpc
ユーザーがリンクをクリックすると、firebase_campaign イベントが上記のパラメータとともに記録され、キャンペーン関連のイベントについては次のデータが表示されます。
キャンペーン: myappcampaign
参照元: google
メディア: cpc
https://support.google.com/firebase/answer/6317518?hl=ja
上記はUniversal Linksについてですが、App Linksについても同様のイベント名で集計されています。
Android App Links は、utm パラメータ(utm_source、utm_medium、utm_campaign)を含めるように設定することができます。関連データは [アトリビューション] レポートに表示されます。
Android App Link の例
http://example.com/gizmos?utm_campaign=myappcampaign&utm_source=google&utm_medium=cpc
ユーザーがリンクをクリックすると、firebase_campaign イベントが上記のパラメータとともに記録され、キャンペーン関連のイベントについては次のデータが表示されます。
キャンペーン: myappcampaign
参照元: google
メディア: cpc
このfirebase_campaignイベントは、Firebase Analytics側で自動的に集計されるイベントのひとつのようなので、Firebase Analyticsが導入されていればモバイルアプリ側で特別になにか実装をしなければならないということはありません。
ちなみにfirebase_campaignイベントで自動で記録されるパラメーターは source、medium、campaign、term、content、gclid、aclid、cp1、anid
だそうです。
https://support.google.com/firebase/answer/7061705?hl=ja
firebase_campaignイベントの内容はどこから確認できるのか?
それでは、このイベントによって集計された値はどこから確認できるのでしょうか? ドキュメントには関連データは [アトリビューション] レポートに表示されます。
と記載されています。
Eventsレポートからは確認できない
サイドバーにある[Events]をクリックすると集計された各イベントの回数やパラメータ等を確認できるのですが、ここにはfirebase_campaignという名前のイベントは表示されていませんでした。
※実際の数値等は隠していますConversionsレポートでコンバージョンイベントに紐づく参照元として確認できた
サイドバーにある[Conversions]をクリックすると、コンバージョンイベントのレポート結果を閲覧できます。
例えばデフォルトでコンバージョンイベントとして用意されている first_open(アプリ初回起動)イベントを選択すると、画面下部あたりにそのコンバージョンイベントの参照元が表示されています。
この「参照元」パラメータが、firebase_campaignイベントで集計されたutm_source
の値だと思われます(違っていたら申し訳ありません…)
その他のFirebaseコンソール画面を調べてみたのですが、これ以外の画面でfirebase_campaignイベントの計測結果を確認できる箇所が見つかりませんでした
この画面が[アトリビューション] レポート
なのでしょうか?どの画面が該当の画面なのか、筆者にはわかりませんでした…。もしご存じの方がいれば、コメント等で教えていただけると大変喜びます
しかし、この画面からは純粋な「モバイルアプリを起動した回数」を特定することができません…。
BigQuery経由でfirebase_campaignイベントを集計してみた
いろいろ調べてみたのですが、Firebaseコンソール画面上でfirebase_campaignイベントの内容を確認する方法がわかりませんでした
ですが、BigQueryからFirebase Analyticsの生データを分析できるので、そこから結果を確認することができました。
Firebase Analyticsで集計されたイベントの生データは、BigQuery経由でアクセスすることができます。
具体的な連携方法等は公式のドキュメントや他の方のQiitaの記事で確認していただければと思います。
Firebase の BigQuery Export - Firebase ヘルプ
BigQueryで、前日のUniversal Links/App Links経由でモバイルアプリを起動したイベント回数を、プラットフォーム(iOS, Android)と参照元等の組み合わせで表示するクエリは下記のようになりました。
ぜひみなさんのプロジェクトでも参考にしてください
SELECT
platform,
(SELECT value.string_value FROM UNNEST(event_params) AS x WHERE x.key = "source") AS app_source,
(SELECT value.string_value FROM UNNEST(event_params) AS x WHERE x.key = "medium") AS medium,
(SELECT value.string_value FROM UNNEST(event_params) AS x WHERE x.key = "campaign") AS campaign,
COUNT(DISTINCT user_pseudo_id) as users,
COUNT(user_pseudo_id) as eventCount
FROM
`{your_project}.analytics_{your_id}.events_*`,
WHERE
PARSE_DATE("%Y%m%d", event_date) = DATE(DATETIME_ADD(CURRENT_DATETIME, INTERVAL -1 DAY))
AND
_TABLE_SUFFIX = FORMAT_DATE("%Y%m%d", DATE(DATETIME_ADD(CURRENT_DATETIME, INTERVAL -1 DAY)))
AND
event_name = 'firebase_campaign'
GROUP BY
platform,app_source,medium,campaign
ORDER BY users desc
所感:独自のイベントを実装するのもアリかも?
- 本記事はFirebase Analyticsをモバイルアプリに導入した際に、Universal Links/App Linksでアプリを起動したときの自動計測イベント
firebase_campaign
の分析方法について紹介しました - firebase_campaignイベントはFirebaseコンソール画面からだと確認しづらい?かも?
- それならばいっそ独自のカスタムイベントとして、Universal Links/App Linksでアプリを起動したときにFirebase Analyticsの集計イベントを発火させるように実装したほうが、後々集計しやすいのではないかと思いました