IT アプリ開発

【GA4】AndroidアプリにFirebase Analyticsを入れて計測する

2022年7月30日


下ではAndroidアプリにFirebase Analytics SDKを入れて、デフォルトの計測がされることを確認しました!
【GA4】Android StudioでAndroidアプリにFirebase Analyticsを入れる
ここでは、今度はもっとカスタムに計測できるようなイメージをもってもらえるように、
イベントパラメータやユーザープロパティの計測について説明していこうと思います。

前提

まず前提として、
今回扱う、

  • イベント計測
  • イベントパラメータ計測
  • ユーザープロパティ計測

について計測したい場合は、Firebase SDKを入れるだけではダメです。
※ 一番下で画面遷移での計測を記載してますが、画面遷移は普通にSDKでscreen_viewが計測できるのでSDKのみでできます。
 

gradleファイルにFirebaseのSDKを読み込ませることで、アプリ全体にSDKが適用されるので、基本的にはsession_startやscreen_viewなどのイベントは計測されますが、
カスタムのログなどを計測したい場合は、その計測したいプログラムにて別途Firebaseのライブラリを読み込んで、計測用プログラムを書く必要があります。
 

SDKではなく別途読み込む必要のあるFirebaseライブラリ内に、イベントを計測するlogEventメソッドなどが入っているので、
SDKを読み込むだけでは計測できません。
 

まずここでは、最初に
import com.google.firebase.analytics.FirebaseAnalytics;
を読み込ませておきましょう!
 

package com.example.ga4_androidapp_test;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import com.google.firebase.analytics.FirebaseAnalytics;    // 追加(Firebaseライブラリの読み込み)

public class MainActivity extends AppCompatActivity {

    private final MainActivity self = this;    // 追加
    private FirebaseAnalytics mAnalytics;   // 追加

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //mAnalytics = FirebaseAnalytics.getInstance(self);   // 別途追加(計測したい内容により追加)
        //mAnalytics.setUserProperty("test_user_property", "test_value"); // 別途追加(計測したい内容により追加)
    }
}

上記のライブラリを読み込ませた上で、下の各計測に応じたプログラムを追加していきます。
 

イベントの計測の計測

以下のコードを計測したいActivityファイルに記載します。

※ 以下プログラムだけだと、mAnalyticsという変数がないというエラーになるので、mAnalyticsを定義すること。(上のリンクの中に記載しています)

Bundle bundle = new Bundle();
mAnalytics.logEvent("test_event", bundle);

上記はイベント名「test_event」で計測するコードです。
上記が読み込まれると、イベント「test_event」が送られます。test_eventの箇所を別の値にすることで、自由にイベント名を設定して計測することが可能です。

 

そしてビルドしてアプリを起動すると以下のようにFirebase Analyticsのリアルタイムレポートで、イベント「test_event」が計測されているのが確認できます。

 

イベントパラメータの計測

Bundle params = new Bundle();   // 追加
params.putString("event_param1", "ep1");  // イベントパラメータ設定
params.putString("event_param2", "ep2");  // イベントパラメータ設定
mAnalytics.logEvent("test_event", params);  // イベント名

 

 

ユーザープロパティの計測

mAnalytics.setUserProperty("test_user_property", "test_value"); // 追加

 

画面遷移やボタンのタップ処理の計測

まずAndroid Studioでアプリの画面遷移を構築します。
 

次に以下の構成にして画面遷移をしてみます。
ビルドして最初にMainActivityの画面が表示された後、
next_buttonをタップして、SecondActivityの画面を表示します。
そしてback_buttonをタップして、MainActivityの画面へ遷移します。

 

appサブプロジェクト配下にActivityファイルを作成したいので、
app配下を選択した状態で右クリック > Activity > Empty ActivityでSecondActivityファイルを作成します。

 

そして、作成すると以下の赤枠のように2ファイルが作成されました。
① SecondActivity: 画面の挙動を定義するファイル
② activity_main.xml: 画面のパーツを配置したり構成したりするファイル

 

そして、次に遷移するボタンを配置していきます。
activity_main.xmlファイルを開き、真ん中の赤枠のPaletteをクリックします。
そうすることで、MainActivityの画面とボタンなどのコンポーネントが表示されるので、
buttonからDrag&Dropで画面上に配置します。

 

そしてAttributeをクリックして、配置したボタンを選択します。
そうすることで、Attributeのところにそのボタンに対してidを設定できる入力欄が表示されるため、画面上で配置したボタンを選択した状態で、そこに「next_button」を入れ、textに「SecondActivityへ」と入力します。

 

これによってMainActivity画面のボタンにidが振れました。
続いて、このボタンをタップしたら、SecondActivity画面に遷移するようにする必要があるので、挙動をプログラムを書いて処理します。
MainActivityファイルを開いて、以下のプログラムを書きます。
※ package名は自分のを置いてください。

package com.example.ga4_androidapp_test;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import com.google.firebase.analytics.FirebaseAnalytics;

// buttonライブラリとViewライブラリとIntentライブラリ追加
import android.widget.Button;
import android.view.View;
import android.content.Intent;

public class MainActivity extends AppCompatActivity {

    private final MainActivity self = this;
    private FirebaseAnalytics mAnalytics;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mAnalytics = FirebaseAnalytics.getInstance(self);
        mAnalytics.setUserProperty("test_user_property", "test_value"); // 追加

        // activity_main.xmlに置いたボタン「next_button」の挙動
        Button nextButton = findViewById(R.id.next_button);
        nextButton.setOnClickListener(new View.OnClickListener() {
            //@Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplication(),SecondActivity.class);
                startActivity(intent);
            }
        });
    }
}

 

追加

次に同様にして、
activity_second.xmlファイルにボタンを配置して、そのボタンidに「back_button」を入力し、textには「MainActivityへ」と入力します。
 

そしてSecondActivityファイルで
今度はMainActivityに遷移するので、上のプログラムの、
next_buttonをback_buttonに変更、SecondActivityをMainActivityに変更したものを、記載します。
以下のプログラムです。
※ package名は自分のを置いてください。
 

package com.example.ga4_androidapp_test;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

// buttonライブラリとViewライブラリ追加
import android.widget.Button;
import android.view.View;

public class SecondActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);


        // activity_second.xmlに置いたボタン「back_button」の挙動
        Button backButton = findViewById(R.id.back_button);
        backButton.setOnClickListener(new View.OnClickListener() {
            //@Override
            public void onClick(View v) {
                finish();
            }
        });
    }
}

 
これでビルドしてみますと、以下のようにFirebaseの管理画面上で、MainActivityとSecondActivityのアクセスが計測されているのが確認できました。

▼お問合せはこちら

-IT, アプリ開発
-,

© 2024 Yosshi Labo. Powered by AFFINGER5