Firebaseを利用すると標準機能としてAnalyticsが利用可能です。また、Firebaseを利用する前までは 、利用状況をトラッキングするのに Google Analytics SDK for iOS を組み込んでいましたが、もうその必要もなさそうです。
アプリ内のコードのいろいろな箇所に自由にトリガーを組み込んでおくことで、あらゆる動作を「イベント」として記録・調査できます。ここではAnalyticsのトリガーとなるものをどんな感じで組み込むのかという基本部分をMEMOしておきます。
イベントを送信するコードの配置
イベントを発生させるコードは、プログラム内のいろいろな箇所に配置できます。import Firebase
しつつ、
FIRAnalytics.logEvent(withName: "hogehoge", parameters: nil)
と書いておくだけです。hogehogeの文字列部分にイベント名を書いておきます。その名の通り、FirebaseのAnalyticsにイベントがログされます。コンソールであらかじめ定義しておく必要はなく、コード側で自由にイベント名を定義しておけます。しかし、これはカスタムなイベント名でもログできるというぐらいで、
にあるイベント名が推奨されているようですので、まず自分が実装したいイベントに近いものがここにあるかどうかを確認しておくといいと思います。推奨されているイベント名は、「kFIREventLogin
」のように定義されているので、「kfirevent」と入力してコードヒントに現れるものの中から選ぶといいでしょう。
ログされたイベントは、しばらく経つとFirebaseのコンソール画面で確認することができます(はっきりと確認していませんが、夜中の0時にその日の分がアップデートされるような気がします)。ここで注意すべき点として、ログされたイベントは、後から修正できません。削除することもできません(というか修正・削除するやり方がわかりません。。)なのでカスタムなイベント名を付ける場合、そのフォーマットは最初から慎重に考えてコードの各所に配置すべしです。
僕も最初はカスタムなイベント名をつけていろいろやっていたのですが、下のような形でコンテンツ選択を振り分ければ、おおよその状況をカバーできそうな気がしますね。(Content Typeをカスタムな文字列にして、Item IDを変数から取得しているような例です。)
FIRAnalytics.logEvent(withName: kFIREventSelectContent, parameters: [ kFIRParameterContentType:"open_quiz" as NSObject, kFIRParameterItemID:num as NSObject ])
コンソールで状況確認
上記のコードでイベントを送信したデータは、コンソール上に細かくレポートされます。マイレポート一覧では、アクティブユーザ数など基本的な状況がわかりやすく表示されています。イベントタブを選ぶと上記で設定したようなカスタムなイベントのレポートを表示できます。また、ユーザータブでは、特別なイベントを発生させたユーザのみを分析したりといったことも可能です。
A/Bテスティングについて
Analytics機能を使えば、どのくらいのユーザが自分のアプリを利用しているのか、とか、どういった機能がよく使われているのか、といった事を分析するのに役立ちますね。Remote Configと組み合わせることでA/Bテスティング的な調査も可能になるかもしれません。A/Bテスティングのサービスを調べていた時に、数ある中から機能的には、OptimizelyとLeanplumが良さそうだ、というところまでは行ったのですが、最終的にコスト面でそっと身を引きました。低コストに抑えながら自由度を高めるには、FirebaseのRemote ConfigとAnalyticsで仕掛けを組み込むのもありかもです。(A/Bテスティングを行う前提の作りにしておく必要がありそうですが)
東京造形大学卒業後、マクロメディア(現アドビ システムズ)に入社。Quality AssuranceやテクニカルサポートマネージャーとしてFlash、DreamweaverなどのWeb製品を担当。独立後、2007年に虫カゴデザインスタジオ株式会社を設立。2021年東京三鷹を拠点に。最近は、CakePHP、Laravel、Unity、ZBrush、Modo、Adobe Substance 3D Collection、Xcode、Firebaseにフォーカスしています。モバイルアプリ開発情報を主としたブログ「MUSHIKAGO APPS MEMO」の中の人。