Misurare le visualizzazioni di schermata

Google Analytics monitora le transizioni tra le schermate e associa le informazioni sulla schermata corrente agli eventi, consentendoti di monitorare metriche come il coinvolgimento o il comportamento degli utenti per schermata. Gran parte di questa raccolta di dati avviene automaticamente, ma puoi anche registrare manualmente le visualizzazioni di schermate. Il monitoraggio manuale delle schermate è utile se la tua app non utilizza un UIViewController, View, o Activity separati per ogni schermata che vuoi monitorare, ad esempio in un gioco.

Monitorare automaticamente le schermate

Analytics monitora automaticamente alcune informazioni sulle schermate della tua applicazione, ad esempio il nome della classe di UIViewController o Activity attualmente attiva. Quando si verifica una transizione tra le schermate, Analytics registra un screen_view evento che identifica la nuova schermata. Gli eventi che si verificano su queste schermate vengono automaticamente taggati con il parametro firebase_screen_class (ad esempio menuViewController o MenuActivity) e un firebase_screen_id generato. Se la tua app utilizza un UIViewController o Activity distinti per ogni schermata, Analytics può monitorare automaticamente ogni transizione tra le schermate e generare un report sul coinvolgimento degli utenti suddiviso per schermata. In caso contrario, puoi comunque ottenere questi report registrando manualmente gli eventi screen_view.

Disattivare il monitoraggio delle visualizzazioni di schermate

La generazione automatica di report sulle visualizzazioni di schermate può essere disattivata su iOS impostando FirebaseAutomaticScreenReportingEnabled su NO (booleano) in Info.plist.

Su Android, annida la seguente impostazione all'interno del tag <application> del AndroidManifest.xml file:

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

Monitorare manualmente le schermate

Puoi registrare manualmente gli eventi screen_view indipendentemente dal fatto che il monitoraggio automatico sia attivato o meno. Puoi registrare questi eventi nei metodi onAppear o viewDidAppear per le piattaforme Apple e onResume per Android. Quando screen_class non è impostato, Analytics imposta un valore predefinito in base a UIViewController o Activity attivo quando viene effettuata la chiamata.

Se hai disattivato lo swizzling nella tua app, tutti i nomi delle schermate devono essere impostati manualmente. Per gli utenti di SwiftUI, utilizza l'Analytics SDK di estensione Swift di Analytics.

Swift

Nota: questo prodotto Firebase non è disponibile sulla piattaforma watchOS.
Analytics.logEvent(AnalyticsEventScreenView,
                   parameters: [AnalyticsParameterScreenName: screenName,
                               AnalyticsParameterScreenClass: screenClass])

Objective-C

Nota: questo prodotto Firebase non è disponibile sulla piattaforma 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,
  },
);