Как отслеживать просмотры экранов

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, задайте для параметра FirebaseAutomaticScreenReportingEnabled логическое значение NO в файле Info.plist.

В Android вложите следующий параметр в тег <application> файла AndroidManifest.xml:

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

Как отслеживать экраны вручную

Вы можете регистрировать события screen_view вручную независимо от того, включено ли автоматическое отслеживание, с помощью методов onAppear или viewDidAppear для платформ Apple и onResume для Android. Если параметр screen_class не задан, Analytics устанавливает значение по умолчанию на основе класса UIViewController или Activity, находящегося в фокусе при выполнении вызова.

Если вы отключили подмену методов в приложении, все названия экранов нужно задавать вручную. Если вы используете SwiftUI, вам понадобится Analytics Swift extension SDK.

Swift

Примечание. Эта функция Firebase недоступна для watchOS.
Analytics.logEvent(AnalyticsEventScreenView,
                   parameters: [AnalyticsParameterScreenName: screenName,
                               AnalyticsParameterScreenClass: screenClass])

Objective-C

Примечание. Эта функция Firebase недоступна для watchOS.
[FIRAnalytics logEventWithName:kFIREventScreenView
                    parameters:@{kFIRParameterScreenClass: screenClass,
                                 kFIRParameterScreenName: screenName}];

Kotlin

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,
  },
);