はじめての「Google アナリティクス for Firebase」入門

Google アナリティクス for Firebaseでアプリの表示回数・タップ数のイベント計測を実装する

Google アナリティクス for Firebaseで要件定義に基づいて、AndroidとiOSの表示回数を計測するイベントを実装する方法を解説します(第5回)
よろしければこちらもご覧ください

今回は、第4回の要件定義で定めたアプリの各画面の表示回数を計測するイベント、アプリ内に配置されたボタンが何回タップされたかを計測するためのイベントを、実際にアプリに実装していきます。

前回の要件定義は以下より確認できます。
https://webtan.impress.co.jp/e/2020/08/07/36644

本連載では、モバイルアプリを計測する無料のトラッキングツール「Google アナリティクス for Firebase」を利用したことがないユーザーを対象に各種レポートの見方や実装前の計測項目の考え方、Google アナリティクス SDKとの違いなど連載で解説しています。

Firebase SDKを導入する

はじめに、計測対象のアプリにFirebase SDKを導入します。 公式のドキュメントにインストール方法が記載されていますので、これに従ってFirebase SDKを導入してください。

要件定義に従って、計測用イベントを実装

Firebase SDKを導入し終わったら、次の3つの手順で計測用のイベントを実装していきましょう。

  1. アプリの画面名を設定し、計測するコードの実装
  2. アプリ画面内で発生する各種ボタンのタップイベント計測の実装
  3. 充電スポットページで発生するカスタムイベント計測の実装

1. アプリの画面名を設定し、計測するコードの実装

アプリ内で、各画面の表示回数を計測するためには、screen_viewイベントにscreen_nameパラメータを設定します。 screen_nameパラメータには、アプリの各画面のスクリーン名を設定します。 要件定義の際に設定するscreen_viewは以下の通りでした。

第4回再掲]エンジニアなどに共有するときのExcelのサンプル
  1. ホーム画面
  2. マイリスト
  3. 絞り込み
  4. メニュー画面
  5. 充電スポットページ

これらを実際に、Android、iOSのアプリに実装していくコードを書いてみます。

Android(Kotlin)

Android で screen_view を送信するためには、 logEventメソッドを利用します。setCurrentScreen は現在、非推奨(deprecated)となっているため、以前の記述が残っている場合は現在推奨されている logEventメソッドを利用するように書き換えるようにします。

これをActivityクラスのonResume()メソッド内で呼び出すことで、screen_viewの計測を行うことができます。

実装例


override fun onCreate(savedInstanceState: bundle?) {
    // Firebase Analyticsインスタンスの取得
    mFirebaseAnalytics = Firebase.getInstance(this)
}

override fun onResume() {
    super.onResume()

    // 画面名を計測する
    var params = Bundle()
    params.putString(FirebaseAnalytics.Param.SCREEN_NAME, "ホーム画面")

    mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW, params)
}

iOS(Swift)

iOSでscreen_viewを送信するためには、 setScreenName(_ : screenClass :) メソッドを利用します。

これを、UIViewControllerクラスのviewDidAppear()メソッドを継承したメソッド内で呼び出すことで、screen_viewの計測を行うことができます。

実装例


override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    // 画面名を計測する
    Analytics.setScreenName("ホーム画面")
}

2. アプリ画面内で発生する各種ボタンのタップイベント計測の実装

アプリの各画面に配置しているボタンがタップされた回数を計測するために、SDKで定義済みの推奨イベント “select_content” イベントを利用します。

“select_content” イベントで指定可能なパラメータは以下の通りです。

  • “item_id”
  • “item_name”
  • “content_type”

EVsmartのホーム画面に配置されているボタンに上記の3つのパラメータを設定したのが、以下の表です。

[第4回再掲]ホーム画面の要件定義
item_iditem_namecontent_type
mylistマイリストmain_menu
filter絞り込みmain_menu
menuメニューmain_menu
search検索main_menu
messageメッセージmain_menu
current_location現在地main_menu

実装例

ここでは、ホーム画面に設置されている“マイリスト”ボタンをタップした時に発生するイベントを例に実装例を掲載します。

Android(Kotlin)


/**
 * メイン画面のマイリストをタップした時の処理
 */
fun tapMyList() {
    // Send select_content event
    var param = Bundle()
    params.putString(FirebaseAnalytics.Param.ITEM_ID, "mylist")
    params.putString(FirebaseAnalytics.Param.ITEM_NAME, "マイリスト")
    params.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "main_menu")

    mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, params)

    // マイリストへ画面遷移する(省略)
    ...
}

iOS(Swift)


/**
 * メイン画面のマイリストをタップした時の処理
 */
func tapMyList() {
    // Send select_content event
    var params: [String : Any] = [:]
    params[AnalyticsParameterItemID] = "mylist"
    params[AnalyticsParameterItemName] = "マイリスト"
    params[AnalyticsParameterContentType] = "main_menu"

    Analytics.logEvent(AnalyticsEventSelectContent, parameters: params)

    // マイリストへ画面遷移する(省略)
    ...
}
   

3. 充電スポットページで発生するカスタムイベント計測の実装

充電スポットページを表示した際、これをコンバージョンイベントとして計測するために、カスタムイベントを設定します。

カスタムイベントは、Firebase Analyticsの推奨イベントではないため、SDKで用意されていた定数を利用せず、 独自の文字列を各パラメータに設定していく必要があります。 イベント名は前項では “select_content” を指定していた箇所を “cv_charging_spot”, 設定するパラメータには “prefecture”, “spot_name” の2つのパラメータを定義する必要があります。

第4回再掲]充電スポットページの要件定義

実装例

カスタムイベントの実装では、「2. アプリ画面内で発生する各種ボタンのタップイベント計測の実装」で使用したメソッド “logEvent” を使用します。 logEventメソッドを実行する際、指定するパラメータに、カスタムイベントに “cv_charging_spot” 、パラメータに “prefecture”, “spot_name” を設定しています。

Android(Kotlin)


/**
 * 充電スポットページを表示した際に発生させるカスタムイベント
 * prefectre: 都道府県
 * spotName: 充電スポット名
 */
fun logChargingSpot(prefecture: String, spotName: String) {
    // カスタムイベント"cv_charging_spot"を指定
    val customEventName = "cv_charging_spot"
    var param = Bundle()
    // パラメータに都道府県、充電スポット名を設定
    params.putString("prefecture", prefecture)
    params.putString("spot_name", spotName)

    mFirebaseAnalytics.logEvent(customEventName, params)
}

iOS(Swift)


/**
 * 充電スポットページを表示した際に発生させるカスタムイベント
 * prefectre: 都道府県
 * spotName: 充電スポット名
 */
func logChargingSpot(prefecture: String, spotName: String) {
    // カスタムイベント"cv_charging_spot"を指定
    let customEventName = "cv_charging_spot"
    var params: [String : Any] = [:]
    // パラメータに都道府県、充電スポット名を設定
    params["prefecture"] = prefecture
    params["spot_name"] = spotName

    Analytics.logEvent(customEventName, parameters: params)
}
◇◇◇

今回は、要件定義を元に、それらを実現するための実装サンプルを提示しました。実装時、Firebase公式のAPIドキュメントを参照し、以前使っていた実装方法が非推奨になっていないかを確認しながら開発を進めていくことが大切です。

参考
この記事が役に立ったらシェア!
よろしければこちらもご覧ください
メルマガの登録はこちら Web担当者に役立つ情報をサクッとゲット!
メルマガの登録はこちら Web担当者に役立つ情報をサクッとゲット!

Web業界の転職情報

もっと見る
Sponsored by

人気記事トップ10(過去7日間)

今日の用語

SSI
サーバー側で処理を行ってHTMLに反映させる仕組み。サーバーがSSIに対応してい ...→用語集へ

連載/特集コーナーから探す

インフォメーション

RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]

data-sprite-position-y="250" data-image-original-width="200" data-image-original-height="125">株式会社ブレインパッド株式会社サイバーエージェント株式会社フレームワークスソフトウェア
[SPONSOR]
株式会社キノトロープ株式会社アイレップユーザーグラム富士通株式会社Sitecore株式会社ミツエーリンクス