Google I/O 2023에서 Firebase의 주요 소식을 확인하세요. 자세히 알아보기

화면 조회수 측정

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

자동 화면 추적

애널리틱스는 현재 포커스에 있는 UIViewController 또는 Activity 등의 클래스 이름같이 애플리케이션 내의 화면에 관한 몇 가지 정보를 자동으로 추적합니다. 화면 전환이 발생하면 애널리틱스는 새 화면을 식별하는 screen_view 이벤트를 로깅합니다. 이러한 화면에서 발생하는 이벤트에는 firebase_screen_class 매개변수(예: menuViewController 또는 MenuActivity) 및 생성된 firebase_screen_id가 자동으로 태그됩니다. 앱에서 화면마다 고유한 UIViewController 또는 Activity 매개변수를 사용하는 경우 애널리틱스에서 자동으로 모든 화면 전환을 추적하고 화면별 사용자 참여 발생 시간 상세 보고서를 생성할 수 있습니다. 그렇지 않은 경우에도 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를 설정하지 않으면 애널리틱스는 호출할 때 포커스에 있는 UIViewController 또는 Activity를 기반으로 기본값을 설정합니다.

앱에서 재구성을 중지한 경우 모든 화면 이름을 수동으로 설정해야 합니다. SwiftUI 사용자의 경우 애널리틱스 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+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 version 9

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

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

Web version 8

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