モバイルアプリ開発入門

iOSやAndroidアプリの開発入門者向けブログです。

Google Analytics for Firebaseを使ってみよう(Android, Java)

はじめに

AndroidiOS・Web等に向けた、Google Analytics for FirebaseというGoogleのサービスがあります。これは何のサービスかというと、アプリのイベントログやアクセスログを解析・可視化するためのサービスです。これを使うことで、開発者はユーザのアプリの利用状況を知ることができます。例えば、どのバージョンが多く使われているか、どの機能がよく使われているか、どの地域でどのくらい使われるかなどです。
さて、今回はGoogle Analytics for FirebaseのAndroidでの利用方法を説明します。前回作ったSample WebViewアプリを元に実際に使ってみましょう。

事前準備

Google Analytics for Firebaseは、アプリのパッケージ名にcom.exampleが含まれていると正しく動作しない場合があります。 これを回避するために、パッケージ名をcom.example.samplewebviewからcom.test.samplewebviewに変更します。
1. [SampleWebView] > [app] > [src] > [main] > AndroidManifest.xmlをクリックします。
2. 図1のようにcom.example.samplewebviewからcom.test.samplewebviewに変更します。

f:id:ActivityService:20200630224713p:plain
図1
3. [SampleWebView] > [app] > [src] > [main] > [java] > [com.example.samplewebview] > MainActivity.javaをクリックします。
4. 図2のようにcom.example.samplewebviewのexampleを選択の上、右クリックします。
f:id:ActivityService:20200630225743p:plain
図2
5. [Refactor] > [Rename...]をクリックします(図3)。
f:id:ActivityService:20200630225908p:plain
図3
6. [Rename package]をクリックします(図4)。
f:id:ActivityService:20200630230239p:plain
図4
7. "example"から"test"に書き換えた後、[Refactor]をクリックします(図5)。
f:id:ActivityService:20200630230506p:plain
図5
8. [Do Refactor]をクリックします(図6)。
f:id:ActivityService:20200630231038p:plain
図6
9. [SampleWebView] > [app] > build.gradleをクリックします。
10. 図7のようにapplicationIdを"com.example.samplewebview"から"com.test.samplewebview"に変更します。
f:id:ActivityService:20200630231521p:plain
図7
これで事前準備は完了です。

Google Analytics for Firebaseの設定

Google Analytics for Firebaseを利用するため、ウェブ上のコンソールの設定およびAndroid用のSDKの設定を行います。
1. 以下のウェブページにアクセスし、ログインします。
firebase.google.com Googleアカウントをお持ちでない方は、作成してください。
2. [コンソールへ移動]をクリックします(図8)。

f:id:ActivityService:20200630232024p:plain
図8
3. [プロジェクトを追加]をクリックします(図9)。
f:id:ActivityService:20200630232247p:plain
図9
4. プロジェクト名に"Sample Analytics"を入力の上、[続行]をクリックします(図10)。
f:id:ActivityService:20200630232405p:plain
図10
5. [続行]をクリックします(図11)。
f:id:ActivityService:20200630232731p:plain
図11
6. [Google アナリティクス アカウントを選択または作成します。]で"SampleAnalytics"でアカウントを作成の上、選択します(図12)。
7. [プロジェクト作成]をクリックします(図12)。
f:id:ActivityService:20200630233000p:plain
図12
8. [続行]をクリックします(図13)。
f:id:ActivityService:20200630233111p:plain
図13
9. Androidボタンをクリックします(図14)。
f:id:ActivityService:20200630233222p:plain
図14
10. [Androidパッケージ名]で"com.test.samplewebview"を入力の上、[アプリを登録]をクリックします(図15)。
f:id:ActivityService:20200630233432p:plain
図15
11. [google-services.jsonをタウンロード]をクリックし、google-services.jsonをダウンロードします(図16)。
google-services.jsonFirebaseを利用するための設定ファイルです。
f:id:ActivityService:20200630233821p:plain
図16
12. AndroidStudioで、[SampleWebView] > [app]に先ほどダウンロードしたgoogle-services.jsonをコピーします(図17)。

f:id:ActivityService:20200630234234p:plain
図17
13. もう一度Firebaseのウェブページに戻り、[次へ]をクリックします(図18)。
f:id:ActivityService:20200630234527p:plain
図18
14. 再度AndroidStudioに戻り、[SampleWebView] > [build.gradle]で以下を追記します(図19)。

classpath 'com.google.gms:google-services:4.3.3'

f:id:ActivityService:20200630234838p:plain
図19
15. [SampleWebView] > [app] > [build.gradle]で以下のコードを追記します(図20)。

apply plugin: 'com.google.gms.google-services'
implementation 'com.google.firebase:firebase-analytics:17.2.2'

f:id:ActivityService:20200630235139p:plain
図20
16. 再度Firebaseのウェブページに戻り、[次へ]をクリックします(図21)。
f:id:ActivityService:20200630235251p:plain
図21
17. [このステップをスキップ]をクリックします(図22)。(本来ならば、一度アプリをビルドして、アプリがサーバーと通信したかどうかを確認すべきですが、今回はスキップしました。)
f:id:ActivityService:20200630235514p:plain
図22
18. Google Analytics for Firebaseの画面で[アナリティクス データを待機しています...]が表示されていると思います(図23)。初回の反映は1日程度かかります。
f:id:ActivityService:20200630235752p:plain
図23
これでGoogle Analytics for Firebaseの設定は完了です。

Google Analytics for Firebaseの実装

Google Analytics for Firebaseの実装をします。
SampleWebViewアプリを起動しWebViewを表示した時に、"WebView"タグをFirebaseに送るようにします。こうすることで、Google Analytics for Firebaseのコンソール上で、「SampleWebViewアプリが起動しWebViewを表示した」ことが分かるようになります。(今回はタグを"WebView"としていますが、任意の名前で構いません。)
1. [SampleWebView] > [app] > [src] > [main] > [java] > [com.test.samplewebview] > MainActivity.javaをクリックします(図24)。
2. MainActivity.javaで以下のメンバ変数を追記します(図24)。

private FirebaseAnalytics mFirebaseAnalytics;
  1. Google Analytics for Firebaseにデータを送るための、以下のsendLog()メソッドを追加します(図24)。
private void sendLog(Context context, String className, String functionName){
    // Google Analytics for Firebaseの初期化
    mFirebaseAnalytics = FirebaseAnalytics.getInstance(context);
    // イベントをロギングする
    Bundle bundle = new Bundle();
    bundle.putString(functionName, className);
    mFirebaseAnalytics.logEvent(functionName, bundle);
}
  1. onCreate()メソッドで、以下のようにsendLog()メソッドを呼び出します(図24)。
sendLog(this, this.getLocalClassName(), "WebView"); //Google Analytics for Firebaseにログを送る

f:id:ActivityService:20200701001327p:plain
図24

これで実装は完了です。

Google Analytics for Firebaseの設定

  1. SampleWebViewをビルドして、端末にインストールしてください。
  2. 以下のウェブページにアクセスし、ログインします。
    firebase.google.com
  3. [コンソールへ移動]をクリックします。
  4. [Sample Analytics]を選択してください(図25)。
    f:id:ActivityService:20200701001805p:plain
    図25
  5. Analytics画面でユーザーの利用状況を確認できます。
    アクセスログを確認できました。
    f:id:ActivityService:20200701130015p:plain
    図26
  6. 左側メニュー > [分析] > [Events]をクリックします。
    f:id:ActivityService:20200701130106p:plain
    図27
  7. [既存のイベント]で"WebView"の利用件数を確認できます。
    イベントログを確認できました。
    f:id:ActivityService:20200701130147p:plain
    図28

アプリをリリースする際の注意点

2018年5月25日に「EU一般データ保護規則」(GDPRGeneral Data Protection Regulation)が施行されました。 これは欧州連合 (EU) 内の全ての個人のためにデータ保護を強化し統合することを意図している規則です。
Google Analyticsでデータを取得するアプリをリリースした際にEUで使われると、GDPRに基づく罰則の対象になることがあります。具体的には、違反した場合に巨額の罰金が科されます。
罰則の対象にならないように、「ユーザーの同意を得てからGoogle Analyticsでデータを取得する」や「日本国外では利用できないようにする」などの対応をしてください。これはあくまで例なので、GDPRについて十分に調査・確認の上、判断・対応をしてください。

おわりに

今回はGoogle Analytics for FirebaseAndroidでの利用方法を説明しました。Google Analytics for Firebaseを行うことで、アプリのユーザー・利用データを分析できることが分かったと思います。
今回の分析方法は単純な例でしたが、他にも様々な分析ができるので、Google Analytics for Firebaseコンソール上で色々と試すといいかもしれません。
また、Firebaseは今回紹介したGoogle Analytics以外にも様々なサービスがあります。また機会があれば、他のサービスについても紹介したいと思います。