Firebase IT アプリ開発

【GA4/Firebase】Firebase Analyticsの導入と計測

2021年2月14日


Firebase Analyticsの導入も基本的には、
PodfileにFirebaseAnalyticsを記載して
pod install
open xcworkspace
で読み込み

Firebase Analyticsのswiftへの導入

Firebase Analyticsは主にイベント計測、そしてユーザープロパティ計測の2種類があります。

import FirebaseAnalytics

Analytics.logEvent("tappedButton", parameters: nil)

 

イベント計測は簡単で、上記のように
import FirebaseAnalyticsをインポートし、
そして該当の箇所に、
Analytics.logEvent(イベント名, parameters: nil)
と記載するだけです。
これでユーザーがこのコードを読み込んだ時に、
Google Analytics 4かFirebase Analyticsでイベントが送られているのが確認できます。

そして、ユーザープロパティでの計測をしたい場合は、以下のように記載する。

import FirebaseAnalytics

// IDFA
let sharedASIdentifierManager = ASIdentifierManager.shared()
let adID = sharedASIdentifierManager.advertisingIdentifier
print(adID)
Analytics.logEvent("MainTabBar", parameters: nil)   # イベント「MainTabBar」の送信
Analytics.setUserProperty(adID as Any as? String, forName: "IDFA")    # ユーザープロパティ「IDFA」へ値の送信
Analytics.setUserProperty("soiioy", forName: "user_id")   # ユーザープロパティ「user_id」へ値の送信

import FirebaseAnalyticsでライブラリを読み込み、
そして、上記のように
Analytics.setUserProperty(adID as Any as? String, forName: "IDFA")
と記載します。
第1引数では、値を
第2引数(forName)では、ユーザープロパティ名を
指定します。

上記の例ではIDFAを取得して
ユーザープロパティに送信する例です。

Firebaseでの送信

Google Analytics 4のアプリ計測では、Firebase Analyticsの技術を使用しています。
そのため、Firebase Analyticsの計測方法を知ることでGA4にそのまま適用することが可能です。
Firebaseでは通常のWeb計測であるGAでいうカスタムディメンションのようなものが存在しています。

従来のGA Firebase(GA4)
ヒット粒度のカスタムディメンション イベントパラメータ
ユーザー粒度のカスタムディメンション ユーザープロパティ

通常のGAではカスタムディメンションにデータを入れる際には、
GAの管理画面上でディメンションを作成し、箱を作成する。
そしてGTM側で詳細設定>カスタムディメンションに値を設定して送信するというような手順をふむ。
GA4やFirebaseでも同様に、同じステップでデータの送信を行うことができる。

基本的にはイベント送信のため、
Firebase Analyticsで計測するために必要なSwiftコードは以下の
Analytics.logEvent("MainTabBar", parameters: nil)
のみです。
なので、例えばある箇所をタップした際にイベントを飛ばしたいなどがあれば、
そのタップ後の処理に上記のコードを追加する必要がある。これによりタップ後の処理で上記が実行されてFirebaseにデータが飛ぶようになる。

カスタムイベントのデータ取得をしたい場合は以下のコードを記載する。

Analytics.logEvent("share_image", parameters: [
  "name": name as NSObject,
  "full_text": text as NSObject,
])

第1引数には、イベント名を、
そして第2引数には、イベントパラメータを設定する。
これによりカスタムで取得するイベントパラメータやイベントを取得できる。
※ Firebaseではどんなイベントでも必ずデフォルトで取得するイベントパラメータがあり、それも同時に取得する

デフォルトでの計測
FirebaseではSDKを入れて、importでFirebaseのライブラリを読み込ませるだけで、
デフォルトで自動的に収集してくれるイベントがある。

 

Firebase Analyticsでイベント計測

Firebase Analyticsではイベントの計測方法が主には3つある。

  • 1. Firebase SDKを入れることで自動的に取得する
  • 2. Firebaseで定めている推奨イベントの計測
  • 3. Firebaseで定めていない、独自のイベント計測

について説明していく。

1. Firebase SDKを入れることで自動的に取得する

2. Firebaseで定めている推奨イベントの計測

よく計測であるようなGoogle analyticsでのEコマース計測など、主要な計測のイベントなどが最初から定義されている。
そのすでにあるイベントで計測をすることで、Firebaseの管理画面上で見れる情報も変わってくる。
(要はEコマースの管理画面で、裏では例えばカート落ち情報はこのイベントが来た時に表示など、すでに決まっていて、
それとは違く独自のイベント名でカート落ちを計測すると表示されなかったりする。)

Analytics.logEvent(AnalyticsEventSelectContent, parameters: [
  AnalyticsParameterItemID: "id-\(title!)",
  AnalyticsParameterItemName: title!,
  AnalyticsParameterContentType: "cont",
])

すでにFirebaseで定義されているイベントである「AnalyticsEventSelectContent」
以下の推奨イベントの一覧でも記載があり、コンテンツを選択した場合に発火するイベントと定義している。
なのでそういう場合にトリガーとなる場所に上記コードを記載する必要がある。
推奨イベント一覧

 

3. Firebaseで定めていない、独自のイベント計測

1、2ではなく独自でこういうタイミングで発火させたい、計測したいなどがあるとする。
そういう場合に以下で実装する。

Analytics.logEvent("share_image", parameters: ["name": name as NSObject, "full_text": text as NSObject])

logEventの第1引数は、独自イベント名
そして第2引数には、イベントパラメータを指定する

 

SwiftUIであれば、Buttonをタップしたときにイベントを送信したい場合、

import SwiftUI
import FirebaseAnalytics

struct Test:View{
   var body: some View{
      VStack(){
         Button(action:{
             Analytics.logEvent("share_image", parameters: ["name": name as NSObject, "full_text": text as NSObject])
         }, label:{
             Text("ボタン")
         })
      }
   }
}

 

Firebase Analyticsでユーザープロパティ計測

ユーザープロパティとはカスタムディメンションのユーザー粒度に値するものです。
なのでこのコードが読み込まれるたび、ユーザーの属性となるユーザープロパティの値が最新のものに更新されていきます。

Analytics.setUserProperty(food, forName: "favorite_food")

上記はfavorite_foodというユーザープロパティに変数foodの値を入れるということ。

ユーザープロパティは、ユーザーの属性を表すもので、例えば性別であったり、好きな食べ物であったりと、そのアクセスユーザーの属性情報を定義するものです。
なのでユーザー粒度です。

 

Firebase Analyticsのuser_idに値を設定する

Firebaseでは、ローデータの中にuser_idというカラムがある。これは自分たちで何か設定できる値で、ユーザーごとに個別IDを振って統合したいとか、いろんな識別可能な要素として使用できる。

Analytics.setUserID("123456")

この処理を実行すると、user_idに123456を入れる。

-Firebase, IT, アプリ開発
-, ,

© 2022 Yosshi Blog Powered by AFFINGER5