概要
以前のブログFirebase Admobでreact-native-firebase
を設定する方法を説明しました。以前のブログでも話ししましたが、ファイアベースアナリティクス(Firebase Analytics)はreact-native-firebase
を設定するだけで自動に分析をしてくれます。しかし、私たちが実際ファイアベースアナリティクス(Firebase Analytics)で分析結果を見た結果、自動で分析されたものでは足りないところが多くて今回のブログを作成することにしました。
今回のブログではreact-native-firebase
を使ってファイアベースアナリティクス(Firebase Analytics)でもっと詳しく分析するための方法について説明します。
ライブラリ設定
ここで説明する内容はreact-native-firebase
ライブラリを使ってファイアベースアナリティクス(Firebase Analytics)です。したがって、基本的にreact-native-firebase
を設定する必要があります。react-native-firebase
を設定する方法は以前のブログFirebase Admobを参考してください。このブログではreact-native-firebase
ライブラリ設定については省略します。
デバッグビュー(DebugView)
ファイアベースアナリティクス(Firebase Analytics)はアプリが記録するイベントを約1時間の間に収集した後、一括アップロードします。したがって、分析されたデータを見るためには約1時間の時間を待てる必要があります。しかし、開発する時、テストする時こんな時間を待てる時間がないです。だから、ファイアベースアナリティクス(Firebase Analytics)はデバッグが可能なデバッグビュー(DebugView)を提供してます。デバッグビュー(DebugView)を利用したら収集したデータのアップロード時間を最小化してほぼリアルタイムで分析をすることができます。
今後react-native-firebase
ライブラリの機能を使ってファイアベースアナリティクス(Firebase Analytics)で追加する分析機能たちをすぐに確認できるようにデバッグビュー(DebugView)を設定して進めます。
iOS
ファイアベースアナリティクス(Firebase Analytics)でデバッグビュー(DebugView)機能を使うためにiOSで下記のような設定をします。
- リアクトネイティブ(React Native)プロジェクトフォルダで
ios/[project].xcworkspace
ファイルを開いてxcodeを実行します。 - 上部のメニューの
Product
>Scheme
>Edit Scheme...
を選択します。
</picture>
- アクティブされた
Edit schema...
ウィンドウの左メニュー中でRun
を選択して右のArguments
タブを選択します。
</picture>
- 選択した
Arguments
タブ中にあるArguments Passed On Launch
の+
ボタンを押して下の内容を追加します。(マイナス(-
)符号も一緒にコピペします。)-FIRDebugEnabled
</picture>
Android
アンドロイドはiOSよりもっとシンプルです。アンドロイドエミュレータ(Android Emulator)やデバイス(Device)を起動して下記のコマンドを実行します。
adb shell setprop debug.firebase.analytics.app <package_name>
ファイアベースアナリティクス(Firebase Analytics)のDebugView
を中止したいときは下のコマンドを実行します。
adb shell setprop debug.firebase.analytics.app .none.
テスト
まずファイアベースコンソル(Firebase Console)のファイアベースアナリティクス(Firebase Analytics)のDebugView
メニューへ移動します。

現在はiOS, Android両方起動してない状態ですのでDebugView
が待機状態であります。iOSやアンドロイドを起動します。

しばらくして上のようなほぼリアルタイムで分析される画面が見えます。
画面分析
ファイアベースアナリティクス(Firebase Analytics)でユーザがどんな画面を見たかを記録してくれるscreen_view
と呼ぶイベント(Event)があります。
ファイアベースコンソル(Firebase Console)でAnalytics
のEvents
メニューを選択したら下のような画面が見えます。

画面に見えるEvent
リストでscreen_view
を選択します。

少しスクロールして下に行ったらUser engagement
> Screen class
の項目が見えます。

User engagementをScreen class
からScreen name
で変更します。

ここまで来たらなんか足りないことを感じると思います。Screen class
では本当に基本になるclassだけ確認されてScreen name
には何もデータがなくユーザがどんな画面を見たかが分析出来ないです。
それで私たちはreact-native-firebase
が提供してるsetCurrentScreen
を使ってユーザが見た画面を分析することにしました。
私たちは分析したいアプリの画面へ下記のようなコードを追加しました。
render() {
firebase.analytics().setCurrentScreen('HOME');
...
return (
...
);
}
react-native-firebaseが提供するsetCurrentScreen
でアプリの画面の名前を入力します。
そしてテストして分析されたら下記のように私たちがsetCurrentScreen
で入力したアプリの画面の名前を確認することができます。

ファイアベースアナリティクス(Firebase Analytics)のDebugView
でもリアルタイムで分析されることを確認することができます。

DebugViewでそのイベント(screen_view)を選択したら上のような詳細画面が見えます。
カスタムイベント分析
上に紹介ししたsetCurrentScreen
ではユーザが見た画面の分析はできますが、その画面でユーザが何のアクションをしたかはわかりません。今回はlogEvent
を使ってファイアベースアナリティクス(Firebase Analytics)でカスタムイベント(Custom Event)を分析する方法を説明します。
私たちはファイアベースアナリティクス(Firebase Analytics)で分析したいカスタムイベント(Custom Event)を下のコードを使って追加しました。
private _onSpeech = (Tts, text: string) => {
firebase.analytics().logEvent('onPressSoundButton', { target: text });
...
}
logEventは最初パラメータは英語100文字と特殊文字アンダーバー(_)のみで使えます。(up to 100 characters is the maximum character length supported for event parameters.
)しかし、私たちのアプリは多言語を提供してますのでどの言語でどんなアクションをしたかを分析したくなりました。そして2つ目のパラメータを使ってカスタムイベント(Custom Event)でカスタムパラメータ(Custom Parameter)を追加しました。2つ目のパラメータはオブジェクト(Object)タイプですので自由にカスタムパラメータ(Custom Parameter)を作って分析に活用することができます
上のようにカスタムイベント(Custom Event)へカスタムパラメータ(Custom Parameter)を追加したらファイアベースコンソル(Firebase Console)でも追加する必要があります。

上のようにAnalytics
メニューのEvents
へ移動してイベント(Event)リスト中で追加したカスタムイベント(Custom Event)へマウスを移動します。

マウスを移動したらその項目の右へ...
ボタンが表示されます。そのボタンを押して見えるメニューのEdit parameter reporting
を選択します。

左にある検索バーへ分析したいカスタムイベント(Custom Event)のカスタムパラメータ(Custom Parameter)を入力してADD
を押してカスタムパラメータ(Custom Parameter)を追加します。

追加が完了されたらテストを進めます。データが溜まった後(約1日)、Events
メニューで追加したカスタムイベント(Custom Event)を選択します。

少しスクロールして下に行くと私たちが追加したカスタムパラメータ(Custom Parameter)の分析結果を確認することができます。

ファイアベースアナリティクス(Firebase Analytics)のDebugView
でもリアルタイムで分析されることが確認できます。

DebugViewでそのカスタムイベント(Custom Event)を選択したら上のように追加したカスタムパラメータ(Custom Parameter)が一緒に見える詳細画面が見えます。
参考
- ファイアベースデバッグイベント: https://firebase.google.com/docs/analytics/debugview
- react-native-firebase: https://rnfirebase.io/docs/v5.x.x/analytics/reference/analytics
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。