Firebase 向け Google アナリティクスの Instant App への追加

アプリの成功を追跡することは、Instant 版かインストール版かにかかわらず、各デベロッパーにとって重要なことです。Fabric AnswersLocalyticsMixpanel などの分析ライブラリは Google Play Instant と互換性があります。

使用中の分析ソリューションがこの中にない場合、あるいは Google Play Instant に対応していないと判明した場合は、テレメトリー ソリューションとして Firebase 向け Google アナリティクスを使用することを検討してください。このページでは、Instant App プロジェクトで Firebase 向け Google アナリティクスをセットアップする方法について説明します。

Firebase 向け Google アナリティクスを Instant App プロジェクトに追加する

  1. Firebase 向け Google アナリティクスのスタートガイドに記載されている手順に従って、Firebase SDK をアプリに追加します。
  2. 最新バージョンの google-services プラグインを使用します。
  3. google-services.json ファイルを各モジュールに配置します。
  4. 各モジュールの build.gradle ファイルに次の行を追加します。

        // android { ... }
        // dependencies { ... }
        apply plugin: 'com.google.gms.google-services'
        

Firebase 向け Google アナリティクスを Instant App プロジェクトに追加すると、インストール版アプリ プロジェクトと同じように Firebase 向け Google アナリティクスの API を使用できます。

Firebase 向け Google アナリティクスの使用方法について詳しくは、Firebase 向け Google アナリティクスのスタートガイドをご覧ください。

インストール済みアプリのデータと Instant App のデータの区別

インストール済みのアプリと Instant App がパッケージ名を共有しているため、それぞれから収集されたイベントとデータを区別する必要があります。アナリティクスで Instant App とインストール済みのアプリを区別するには、app_type ユーザー プロパティに、それぞれ「instant」、「installed」という値を設定します。

次のコード スニペットは、アナリティクス インスタンスを取得してユーザー プロパティを設定するアクティビティを示しています。このコードでは、PackageManagerCompat.isInstantApp()onCreate(android.os.Bundle) メソッドで使用して、アプリのコンテキストを特定します。

Kotlin

    val STATUS_INSTALLED = "installed"
    val STATUS_INSTANT = "instant"
    val ANALYTICS_USER_PROP = "app_type"

    private lateinit var firebaseAnalytics: FirebaseAnalytics

    protected fun onCreate(savedInstanceState: Bundle?) {
        ...

        firebaseAnalytics = FirebaseAnalytics.getInstance(this)

        // Determine the current app context, either installed or instant, then
        // set the corresponding user property for Google Analytics.
        if (InstantApps.getPackageManagerCompat(this).isInstantApp()) {
            firebaseAnalytics.setUserProperty(ANALYTICS_USER_PROP, STATUS_INSTANT)
        } else {
            firebaseAnalytics.setUserProperty(ANALYTICS_USER_PROP, STATUS_INSTALLED)
        }
    }
    

Java

    final String STATUS_INSTALLED = "installed";
    final String STATUS_INSTANT = "instant";
    final String ANALYTICS_USER_PROP = "app_type";

    private FirebaseAnalytics firebaseAnalytics;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...

        firebaseAnalytics = FirebaseAnalytics.getInstance(this);

        // Determine the current app context, either installed or instant, then
        // set the corresponding user property for Google Analytics.
        if (InstantApps.getPackageManagerCompat(this).isInstantApp()) {
            firebaseAnalytics.setUserProperty(ANALYTICS_USER_PROP, STATUS_INSTANT);
        } else {
            firebaseAnalytics.setUserProperty(ANALYTICS_USER_PROP, STATUS_INSTALLED);
        }

    }
    

app_type ユーザー プロパティを設定したら、アナリティクス コンソールの [イベント] タブでイベントを選択し、app_type の値でイベントをフィルタできます。結果のデータ投影から、Instant App またはインストール済みのアプリで指定されたイベントの数が得られます。

Firebase 向け Google アナリティクスでのイベントのログと表示の詳細については、イベントをロギングするをご覧ください。

アナリティクス イベントの解釈

アナリティクスを使用すると、Instant App にとって価値のあるさまざまな指標を追跡できます。次の表は、アナリティクスの対応するイベント名やプロパティなど、Instant App に関連する指標を説明しています。

名前 アナリティクスの値 定義
訪問数 session_start セッションの開始。このイベントは自動的に追跡されます。
物理的な購入 Firebase.Event.ECOMMERCE_PURCHASE 物理的な購入。このイベントはコードで明示的に追跡する必要があります。
デジタル コンテンツの購入 in_app_purchase アプリ内デジタル購入。このイベントは自動的に追跡されます。
アプリ滞在時間 user_engagement アプリがフォアグラウンドにあった時間。このイベントは自動的に追跡されます。
Instant App のコンテキスト app_type Instant またはインストール済みのコンテキストで実行中のアプリから発生したイベント。このイベントはコードで明示的に追跡する必要があります。上記のインストール済みアプリのデータと Instant App のデータの区別をご覧ください。
リピート訪問 session_start.countapp_type 2 回以上アクセスしたユーザーのオーディエンス。app_type イベントは明示的に追跡する必要があります。session_start が追跡されます。上記のインストール済みのアプリのデータと Instant App のデータの区別をご覧ください。

アナリティクスで収集できるイベントの定数について詳しくは、FirebaseAnalytics.Event をご覧ください。