화면 조회수 측정

Google Analytics는 화면 전환을 추적하고 현재 화면에 관한 정보를 이벤트에 첨부하므로 사용자 참여 또는 사용자 행동과 같은 측정항목을 화면별로 추적할 수 있습니다. 이 데이터 수집은 대부분 자동으로 이루어지지만 수동으로 화면 조회수를 로깅할 수도 있습니다. 수동 화면 추적은 게임과 같이 앱에서 추적하려는 각 화면에 별도의 UIViewController, View 또는 Activity를 사용하지 않는 경우에 유용합니다.

자동 화면 추적

Analytics는 현재 포커스에 있는 UIViewController 또는 Activity 등의 클래스 이름같이 애플리케이션 내의 화면에 관한 몇 가지 정보를 자동으로 추적합니다. 화면 전환이 발생하면 Analytics는 새 화면을 식별하는 screen_view 이벤트를 로깅합니다. 이러한 화면에서 발생하는 이벤트에는 firebase_screen_class 매개변수(예: menuViewController 또는 MenuActivity) 및 생성된 firebase_screen_id가 자동으로 태그됩니다. 앱에서 각 화면에 대해 고유한 UIViewController 또는 Activity 매개변수를 사용하는 경우 Analytics에서 자동으로 모든 화면 전환을 추적하고 화면별 사용자 참여도 보고서를 생성할 수 있습니다. 그렇지 않은 경우에도 screen_view 이벤트를 수동으로 로깅하여 보고서를 생성할 수 있습니다.

화면 조회수 추적 사용 중지

Info.plist에서 FirebaseAutomaticScreenReportingEnabledNO(불리언)로 설정하여 iOS에서 자동 화면 조회수 보고를 중지할 수 있습니다.

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를 설정하지 않으면 Analytics는 호출할 때 포커스에 있는 UIViewController 또는 Activity를 기반으로 기본값을 설정합니다.

앱에서 재구성을 중지한 경우 모든 화면 이름을 수동으로 설정해야 합니다. SwiftUI 사용자의 경우 Analytics Swift 확장 프로그램 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

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