スクリーン ビューを測定する

Google Analytics ではスクリーンの遷移が追跡され、現在のスクリーンに関する情報がイベントに関連付けられるため、ユーザー エンゲージメントやスクリーンごとのユーザー行動などの指標を追跡できます。こうしたデータ収集の多くは自動的に行われますが、手動でスクリーン ビューをロギングすることもできます。手動によるスクリーンの追跡は、ゲーム内などのように、追跡するスクリーンごとにアプリで別の UIViewControllerViewActivity を使用しない場合に便利です。

画面を自動的に追跡する

Analytics は、現在フォーカスされている UIViewController または Activity のクラス名など、アプリケーション内のスクリーンに関する一部の情報を自動的に追跡します。スクリーンの遷移が発生すると、Analytics によって新しいスクリーンを識別する screen_view イベントがロギングされます。こうしたスクリーンで発生するイベントには、firebase_screen_class パラメータ(例: menuViewControllerMenuActivity)と、生成された firebase_screen_id が自動的にタグ付けされます。アプリで各スクリーンに異なる UIViewController または Activity を使用している場合、Analytics はすべてのスクリーンの遷移を自動的に追跡することが可能であり、スクリーンごとに分類されたユーザー エンゲージメントのレポートを生成します。アプリがそのように設定されていない場合でも、screen_view イベントを手動でロギングすれば、このレポートを生成できます。

スクリーン ビュー トラッキングを無効にする

自動スクリーン ビュー レポートをオフにするには、iOS の場合は Info.plist で FirebaseAutomaticScreenReportingEnabledNO(ブール値)に設定します。

Android の場合は、AndroidManifest.xml ファイルの <application> タグ内に次の設定をネストします。

<meta-data android:name="google_analytics_automatic_screen_reporting_enabled" android:value="false" />

スクリーンを手動で追跡する

自動トラッキングが有効かどうかにかかわらず、screen_view イベントを手動でロギングできます。Apple プラットフォームの場合は onAppear メソッドまたは viewDidAppear メソッド、Android の場合は onResume メソッドでこれらのイベントをロギングします。screen_class が設定されていない場合は、呼び出し時にフォーカスされている UIViewController または Activity に基づき Analytics によってデフォルト値が設定されます。

アプリで実装入れ替えを無効にした場合は、すべてのスクリーン名を手動で設定する必要があります。 SwiftUI をご利用の場合は、AnalyticsSwift 拡張機能 SDK を使用してください。

Swift

注: この Firebase プロダクトは、macOS ターゲットでは使用できません。
Analytics.logEvent(AnalyticsEventScreenView,
                   parameters: [AnalyticsParameterScreenName: screenName,
                                AnalyticsParameterScreenClass: screenClass])

Objective-C

注: この Firebase プロダクトは、macOS ターゲットでは使用できません。
[FIRAnalytics logEventWithName:kFIREventScreenView
                    parameters:@{kFIRParameterScreenClass: screenClass,
                                 kFIRParameterScreenName: screenName}];

Kotlin+KTX

firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) {
    param(FirebaseAnalytics.Param.SCREEN_NAME, screenName)
    param(FirebaseAnalytics.Param.SCREEN_CLASS, "MainActivity")
}

Java

Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.SCREEN_NAME, screenName);
bundle.putString(FirebaseAnalytics.Param.SCREEN_CLASS, "MainActivity");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW, bundle);

Web

import { getAnalytics, logEvent } from "firebase/analytics";

const analytics = getAnalytics();
logEvent(analytics, 'screen_view', {
  firebase_screen: screenName, 
  firebase_screen_class: screenClass
});

Web

firebase.analytics().logEvent('screen_view', {
  firebase_screen: screenName, 
  firebase_screen_class: screenClass
});

Dart

await FirebaseAnalytics.instance.logEvent(
  name: 'screen_view',
  parameters: {
    'firebase_screen': screenName,
    'firebase_screen_class': screenClass,
  },
);