Google Analytics ではスクリーンの遷移が追跡され、現在のスクリーンに関する情報がイベントに関連付けられるため、ユーザー エンゲージメントやスクリーンごとのユーザー行動などの指標を追跡できます。こうしたデータ収集の多くは自動的に行われますが、手動でスクリーン ビューをロギングすることもできます。手動によるスクリーンの追跡は、ゲーム内などのように、追跡するスクリーンごとにアプリで別の UIViewController
、View
、Activity
を使用しない場合に便利です。
画面を自動的に追跡する
Analytics は、現在フォーカスされている UIViewController
または Activity
のクラス名など、アプリケーション内のスクリーンに関する一部の情報を自動的に追跡します。スクリーンの遷移が発生すると、Analytics によって新しいスクリーンを識別する screen_view
イベントがロギングされます。こうしたスクリーンで発生するイベントには、firebase_screen_class
パラメータ(例: menuViewController
、MenuActivity
)と、生成された firebase_screen_id
が自動的にタグ付けされます。アプリで各スクリーンに異なる UIViewController
または Activity
を使用している場合、Analytics はすべてのスクリーンの遷移を自動的に追跡することが可能であり、スクリーンごとに分類されたユーザー エンゲージメントのレポートを生成します。アプリがそのように設定されていない場合でも、screen_view
イベントを手動でロギングすれば、このレポートを生成できます。
スクリーン ビュー トラッキングを無効にする
自動スクリーン ビュー レポートをオフにするには、iOS の場合は Info.plist で FirebaseAutomaticScreenReportingEnabled
を NO
(ブール値)に設定します。
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 をご利用の場合は、Analytics の Swift 拡張機能 SDK を使用してください。
Swift
Analytics.logEvent(AnalyticsEventScreenView, parameters: [AnalyticsParameterScreenName: screenName, AnalyticsParameterScreenClass: screenClass])
Objective-C
[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,
},
);