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에서 FirebaseAutomaticScreenReportingEnabled
를 NO
(불리언)로 설정하여 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
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,
},
);