Firebase 向け Google アナリティクスを Instant App に追加する

アプリの成功(インスタントまたはインストール済みのアプリ)をトラッキングすることは、各デベロッパーにとって重要です。Google Play Instant に対応している分析ライブラリのいくつかは、Fabric AnswersLocalyticsMixpanel などです。

現在の分析ソリューションがリストにない場合、または 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 ファイルに次の行を追加します。

    Groovy

    // android { ... }
    // dependencies { ... }
    plugins {
        id 'com.google.gms.google-services'
    }
    

    Kotlin

    // android { ... }
    // dependencies { ... }
    plugins {
        id("com.google.gms.google-services")
    }
    

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

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

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

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

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

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 をご覧ください。