どんなことであっても最初に踏み出す一歩って大変ですよね。Firebase Analytics の一歩を少しでも楽に踏み出せるように、という思いを込めて Firebase Analytics の基本についてまとめてみました!
はじめに Firebase Analytics って何?どんなことができるの?ということについてまとめたのちに、iOSアプリに Firebase Analytics を仕込んでみたという構成になっています。手っ取り早くやってみたい方はFirebase Analytics を導入まで飛ばしてしまっても大丈夫です。
目次
Firebase Analytics は無料のアプリ測定ソリューション
Firebase Analytics は、アプリの使用状況とユーザエンゲージメントについて分析することができる無料のアプリ測定ソリューションです。Firebase Console の Analytics ページを見ることで、ユーザの行動を明確に把握することができ、アプリのマーケティングやパフォーマンス改善に関する意思決定を確かなデータに基づいて行うことができます。
Android / iOS それぞれのアプリへの導入も非常に簡単で、Firebase Console でアプリをFirebase に登録し、アプリ側でSDKを読み込むだけで Analytics は自動でログ収集を始めます。得られるログはユーザの行動によって呼び出されるイベントと、利用ユーザのプロパティが主で、取得したログデータを用いて Analytics ページの各レポートから分析を始めることができます。
Event でユーザの操作、システムイベントなどを知る
イベントは大きく3種類
ユーザの操作、システムのイベント、エラーなどアプリで起こっていることをイベントと呼びます。たとえば、「ユーザがアプリを閉じた」「OSのアップデートが行われた」「使用中にアプリが落ちた」などです。イベントは大きく以下の3つに分けることができます。
- SDKを読み込むだけで自動的に収集されるイベント
- 自動収集されないがアプリの用途に応じて Analytics がアプリに導入を推奨しているイベント
- 開発者が目的に応じて自由に定義できるイベント
自動で収集されるイベント
自動で収集されるイベントは、公式ドキュメントにまとめられています。結構種類があるためどのようなイベントがあるかはリンク先を参照にしてみてください。いくつか例を上げると、ユーザが広告をクリックした( ad_click)、アプリの画面遷移が行われた(screen_view)、端末のOSがアップデートされた(os_update)などがあります。これらのイベントは、アプリを Firebase に登録し、SDKをアプリに導入するだけでイベントログとして取得することができます。基本的にどのようなアプリであっても取得することが可能なイベントです。
Firebase Analytics が 導入を推奨しているイベント
推奨イベントは、アプリのジャンルに応じて Analytics が導入を推奨しているイベントです。推奨イベントは自動で取得されないので開発者がアプリに組み込むことでログとして取得することができます。以下に、ジャンルに応じた推奨イベントをまとめました。
イベント:すべてのアプリ
ユーザがログインしたとき(login)、ユーザがチュートリアルを開始したとき(tutorial_begin)など
イベント:小売とeコマース
ユーザがお支払い情報を追加(add_payment_info)、払い戻しが行われた時(purchase_refund)など
イベント:求人、教育、地域限定セール、不動産
ユーサがカートに商品を追加(add_to_cart)、ユーザが欲しいものリストに商品を追加(add_to_wishlist)など
イベント:旅行ホテル
ユーザが購入手続きを完了(ecommerce_purchase)、ユーザが購入手続きを開始したとき(begin_checkout)など
イベント:ゲーム
etc. プレイヤーがゲーム内でレベルアップ(level_up)、プレイヤーが実績を達成(unlock_achievement)など
自動で収集されるイベントは必要最低限であるため、アプリのジャンル・目的に応じてこれらの推奨イベントを導入することで、アプリの使用状況やエンゲージメントをより深く分析することが可能になります。これらのイベントはSDKに定数として定義されており、引数なども指定されています。
アプリの目的に応じて仕込むカスタムイベント
最後に、カスタムイベントについて簡単に説明します。カスタムイベントという名称に関して、正式な呼称が不明であったため、この記事内ではカスタムイベントと呼ぶことにします。これは開発者が自由に定義することができるイベントです。自動収集されるイベント及び推奨イベントだけでは想定するユーザの行動をロギングしきれないときに用いられます。このブログでは解説しませんが、利用の一例としては、Analytics の目標到達プロセスを用いてユーザの目標への到達プロセスを細かく設定・分析する時などに、カスタムイベントを定義して用います。
User Propertyはユーザ層を示す属性
ユーザプロパティの基礎
ユーザプロパティとは、ユーザ層を示す属性のことです。Analytics はイベント同様に一部のユーザプロパティに関するログを自動で記録します。自動で記録される属性の他に、プロジェクトごとに最大25個まで独自の属性を設定することができます。ユーザプロパティのデータを取得することで、ユーザの国や年齢、性別などを把握することができます。このユーザプロパティはアナリティクスの各レポートで、フィルタとして非常に高い頻度で用います。他にも Audiences を定義するときにも使われます。
自動収集されるユーザプロパティと自由に設定できるユーザプロパティ
イベントと同様に、ユーザプロパティも自動で収集されます。自動で収集されるユーザプロパティは以下の通りです。
- 年齢
- アプリストア
- アプリのバージョン
- 国
- 端末のブランド
- デバイスカテゴリ
- 端末の機種
- 最初の開始時刻
- 性別
- インタレストカテゴリ
- 言語
- 新規/既存
- OSバージョン
また、アナリティクスはユーザ属性とインタレストカテゴリに関するデータを端末広告IDから取得します。端末広告IDの設定はオフにすることができるため、アプリインストール先の端末の設定によっては、これらの情報が取得できないケースも考えられます。
自動収集されるユーザプロパティとは別にカスタムユーザプロパティを導入することもできます。これはアプリの目的に応じて、Firebase Analytics 上でユーザプロパティを定義し、アプリ側でプロパティを設定することで運用することができる独自のユーザプロパティです。カスタムユーザプロパティはプロジェクトごとに最大25個まで定義することができます。ただし、一度定義すると削除できないので慎重に決めることをおすすめします。
モバイルアプリ(iOS)に Firebase Analytics を導入してみよう
ここまで、Firebase Analytics におけるイベントとユーザプロパティについて紹介しました。最後に、iOS アプリに Firebase Analytics を導入して、独自のイベントとムユーザプロパティを設定してみます。
Firebase Console にアプリを登録
Firebase Analytics を始める第一歩として、まずアプリを Firebase に登録する必要があります。この節はiOS 用 Firebase 向け Google アナリティクスを使ってみるを参考にしています。
では、はじめていきましょう。Firebase プロジェクトを作成し、Firebase の設定から「プロジェクトの設定」を選択します。
すると、プロジェクトの設定画面が表示されます。画面をスクロールしマイアプリの欄にいきます。アプリの登録が初めての場合は詳細画面は「プロジェクトにはアプリがありません」と表示されるため、マイアプリ画面のiOSのアイコンをクリックしてください。アプリが登録されている場合は以下のような画面になり、右上の「アプリを追加」をクリックします。
アプリに Firebase を追加するというポップが出るので、プラットフォームを選択します。今回はiOSなので、iOSを選択します。
「iOSアプリにFirebaseを追加」という画面に切り替わります。iOSバンドルIDを入力して、アプリを登録をクリックします。
あとは画面の指示に従っていく流れになります。
設定ファイルのダウンロードボタンを押し、GoogleService-info.plist
が手元にダウンロードします。ダウンロード完了後は、これをXcodeのプロジェクトルートにドラック&ドロップで追加します。完了したら次へボタンを押します。
XcodeプロジェクトにFirebase SDKを追加します。手順は画面に書いてある通りで、ターミナルウィンドウを開き、アプリのXcodeプロジェクトの場所に移動します。移動後はCocoaPodsを用いてSDKを追加します。少し時間がかかると思います。完了したら次に進みます。
Xcodeプロジェクトに、初期化コードを追加します。プロジェクトに応じて Swift と Objective-C のどちらかを選びます。今回は Swift のプロジェクトのため Swift を選びました。コードを追加できたら、次に進みます。
すると、アプリに Firebase の SDK がインストールされたのか確認する画面に遷移します。アプリを実行してしばらく待機します。
成功すると、上記のような画面になりiOSアプリに Firebase SDKを追加することができました。アプリの追加方法についてはこのような流れです。これで、アプリの自動収集イベントとユーザプロパティのログがAnalytics に送られるようになりました。導入までの流れを丁寧に示してくれるので、非常にわかりやすいですね。ところで、右側のイラストが手順を進めるごとに徐々に変化していることに気が付きましたか?とってもおしゃれですね。
カスタムイベントを追加する
それではカスタムユーザイベントを追加していきましょう。(参考資料)
推奨イベントには、コンテンツを共有したときのイベントとして share が定義されています。今回は、そのイベントとは別に画像を共有した時のイベントとして、share_imageというカスタムなイベントを作ります。
let name = "cat.png"
let text = "I have a cat. very cute!!"
Analytics.logEvent("share_image", parameters: [
"name" : name as NSObject,
"full_text" : text as NSObject
])
イベントを Firebase Analytics に送るには、 Analytics.LogEvent を使います。第一引数にイベント名、第二引数にパラメータを設定します。Xcodeで実行したあと、すぐに送信したイベントを アナリティクスのイベントレポートで確認したいところですが、データ通信のトラフィックの関係で送信したログが Firebase Analytics Console に反映されるには1時間以上かかります。そのため、今回は開発者向けの DebugView レポートを使ってイベントが送られたかどうかを確認します。
デフォルトの状態だと、Firabse Analtyics の DebugView 機能は使えないので、使うための設定を行います。Xcodeで、Product -> Scheme -> Edit scheme からDebugView のために -FIRDebugEnabledを引数に設定します。これでイベントログがAnalytics のレポートに反映されるのを待たずに、DebugView レポートからEventを確認することができます。
それでは、アプリを実行し、DebugViewを見てみましょう。
first_open
やscreen_view
などの自動で収集されるイベントがアナリティクスに送られていることがわかります。これに加えて、今回作成したshare_image
イベントも送られていることが確認できました。
また、イベントのパラメータの値も無事アナリティクスに送信できていることがわかります。これで、カスタムイベントを Firebase Analytics に流すことができました。
カスタムユーザプロパティを追加する
次に、カスタムユーザプロパティを追加します。(参考資料)
カスタムユーザプロパティを運用すためには、まず、Firebase Analytics Console の User Properties レポートで、プロパティを登録します。今回は、favorite_animal
というプロパティにします。また、一度登録したユーザプロパティは変更できず、消せない上に最大25個までなので慎重に行いましょう。説明文は後からでも変更可能です。
これで、定義したユーザプロパティを扱う準備が完了しました。あとは、プログラムからユーザプロパティに値を設定してあげましょう。今回はユーザの好きな動物というプロパティを作り、動物の名前を値にセットして実行してみました。
let animal = "cat"
Analytics.setUserProperty(animal, forName: "favorite_animal")
同じく、DebugView を用いて、ユーザプロパティfavorite_animalが記録されたかを確認します。アプリを実行。
share_image
イベントに付随しているのユーザプロパティにfavorite_animal
が追加されており、値にcatが設定されていることがわかります。
Firebase Analytics Event レポート で確認
ここ前はすべて DebugView レポートから眺めていました。最後は DebugView レポートではなく、Firebase Console の Analytics ページできちんとイベントを送ることができたのかどうかを確認します。リアルタイム性を重視した DebugView と違い、こちらは反映されるのに少なくとも1時間以上はかかるため、その点に留意してください。私の環境では24時間近くかかっている気がします。
まずは、独自につくったイベント「share_image」が記録されているか見ます。これは、Firebase Analytics ページの Event レポートで確認します。
無事、定義したshare_image
イベントがレポートに記録されていることが確認できます。続いて、独自に設定したユーザプロパティの確認を行います。これはFirebase Analytics ページにダッシュボードのフィルタで確認します。
画面の上部にあるのがフィルタです。
フィルターからユーザプロパティと選択すると、デフォルトのユーザプロパティに加え今回独自に設定したfavorite_animal
というユーザプロパティがあることがわかります。また、記事のソースでは「cat」を指定しましたが、別に「cow」「dog」を設定したため、これらのプロパティの値をフィルタとして各レポートで用いることができるようになりました。これで分析の幅が広がりました。
まとめ
Firebase Analytics の最初の一歩ということで、iOSアプリにイベントとユーザプロパティを仕込んで、Firebase Concole の Analytics ページから登録されていることを確認しました。導入自体は非常に簡単であったと思います。
ただ、記事を書く上で苦労したのは点は、取得したデータがアナリティクスのレポートに即座に反映されるようにはなっていないため、ログを送ってからそのログをFirebase Console で確認するのは次の日になることが多かったことです。開発の段階は DebugView に活躍してもらいましょう。