@@ -6,6 +6,7 @@ import { Router, NavigationEnd, ActivationEnd } from '@angular/router';
66import { FirebaseAnalytics , FIREBASE_OPTIONS , FIREBASE_APP_NAME , _firebaseAppFactory } from '@angular/fire' ;
77
88export const AUTOMATICALLY_SET_CURRENT_SCREEN = new InjectionToken < boolean > ( 'angularfire2.analytics.setCurrentScreen' ) ;
9+ export const AUTOMATICALLY_LOG_SCREEN_VIEWS = new InjectionToken < boolean > ( 'angularfire2.analytics.logScreenViews' ) ;
910export const ANALYTICS_COLLECTION_ENABLED = new InjectionToken < boolean > ( 'angularfire2.analytics.analyticsCollectionEnabled' ) ;
1011export const AUTOMATICALLY_TRACK_USER_IDENTIFIER = new InjectionToken < boolean > ( 'angularfire2.analytics.trackUserIdentifier' ) ;
1112export const APP_VERSION = new InjectionToken < string > ( 'angularfire2.analytics.appVersion' ) ;
@@ -27,6 +28,7 @@ export class AngularFireAnalytics {
2728 @Optional ( ) @Inject ( FIREBASE_APP_NAME ) nameOrConfig :string | FirebaseAppConfig | null | undefined ,
2829 @Optional ( ) router :Router ,
2930 @Optional ( ) @Inject ( AUTOMATICALLY_SET_CURRENT_SCREEN ) automaticallySetCurrentScreen :boolean | null ,
31+ @Optional ( ) @Inject ( AUTOMATICALLY_LOG_SCREEN_VIEWS ) automaticallyLogScreenViews :boolean | null ,
3032 @Optional ( ) @Inject ( ANALYTICS_COLLECTION_ENABLED ) analyticsCollectionEnabled :boolean | null ,
3133 @Optional ( ) @Inject ( AUTOMATICALLY_TRACK_USER_IDENTIFIER ) automaticallyTrackUserIdentifier :boolean | null ,
3234 @Optional ( ) @Inject ( APP_VERSION ) providedAppVersion :string | null ,
@@ -45,7 +47,7 @@ export class AngularFireAnalytics {
4547 runOutsideAngular ( zone )
4648 ) ;
4749
48- if ( router && automaticallySetCurrentScreen !== false ) {
50+ if ( router && ( automaticallySetCurrentScreen !== false || automaticallyLogScreenViews !== false ) ) {
4951 const app_name = providedAppName || DEFAULT_APP_NAME ;
5052 const app_version = providedAppVersion || DEFAULT_APP_VERSION ;
5153 const activationEndEvents = router . events . pipe ( filter < ActivationEnd > ( e => e instanceof ActivationEnd ) ) ;
@@ -56,9 +58,13 @@ export class AngularFireAnalytics {
5658 const url = navigationEnd . url ;
5759 const screen_name = activationEnd . snapshot . routeConfig && activationEnd . snapshot . routeConfig . path || undefined ;
5860 const outlet = activationEnd . snapshot . outlet ;
59- analytics . logEvent ( "screen_view" , { app_name, app_version, screen_name, outlet, url } ) ;
60- // TODO when is screen_name undefined?
61- analytics . setCurrentScreen ( screen_name || url , { global : outlet == "primary" } )
61+ if ( automaticallyLogScreenViews !== false ) {
62+ analytics . logEvent ( "screen_view" , { app_name, app_version, screen_name, outlet, url } ) ;
63+ }
64+ if ( automaticallySetCurrentScreen !== false ) {
65+ // TODO when is screen_name undefined?
66+ analytics . setCurrentScreen ( screen_name || url , { global : outlet == "primary" } )
67+ }
6268 } ) ,
6369 runOutsideAngular ( zone )
6470 ) . subscribe ( ) ;
0 commit comments