Google Analytics tracks screen transitions and attaches information
about the current screen to events, enabling you to track metrics such as user
engagement or user behavior per screen. Much of this data collection happens
automatically, but you can also manually log screenviews. Manually tracking
screens is useful if your app does not use a separate UIViewController
or
Activity
for each screen you may wish to track, such as in a game.
Automatically track screens
Analytics automatically tracks some information about screens in your
application, such as the class name of the UIViewController
or Activity
that
is currently in focus. When a screen transition occurs, Analytics logs a
screen_view
event that identifies the new screen. Events that occur on these
screens are automatically tagged with the parameter firebase_screen_class
(for
example, menuViewController
or MenuActivity
) and a generated
firebase_screen_id
. If your app uses a distinct UIViewController
or
Activity
for each screen, Analytics can automatically track every screen
transition and generate a report of user engagement broken down by screen. If
your app doesn't, you can still get these reports by manually logging
screen_view
events.
Manually track screens
You can manually log screen_view
events whether or not automatic tracking is
enabled. You can log these events in the viewDidAppear
state for iOS and
onResume
for Android. When screen_class
is not set, Analytics sets a
default value based on the UIViewController or Activity that is in focus
when the call is made.
Swift
Analytics.logEvent(AnalyticsEventScreenView, parameters: [AnalyticsParameterScreenName: screenName, AnalyticsParameterScreenClass: screenClass])
Objective-C
[FIRAnalytics logEventWithName:kFIREventScreenView parameters:@{kFIRParameterScreenClass: screenClass, kFIRParameterScreenName: screenName}];
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);
The screen name and screen class stay the same until the Activity
changes or you make a new call to
setCurrentScreen()
.
Kotlin+KTX
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SCREEN_VIEW) { param(FirebaseAnalytics.Param.SCREEN_NAME, screenName) param(FirebaseAnalytics.Param.SCREEN_CLASS, "MainActivity") }
The screen name and screen class stay the same until the Activity
changes or you make a new call to
setCurrentScreen()
.