@@ -6,6 +6,7 @@ import { Router, NavigationEnd, ActivationEnd } from '@angular/router';
6
6
import { FirebaseAnalytics , FIREBASE_OPTIONS , FIREBASE_APP_NAME , _firebaseAppFactory } from '@angular/fire' ;
7
7
8
8
export const AUTOMATICALLY_SET_CURRENT_SCREEN = new InjectionToken < boolean > ( 'angularfire2.analytics.setCurrentScreen' ) ;
9
+ export const AUTOMATICALLY_LOG_SCREEN_VIEWS = new InjectionToken < boolean > ( 'angularfire2.analytics.logScreenViews' ) ;
9
10
export const ANALYTICS_COLLECTION_ENABLED = new InjectionToken < boolean > ( 'angularfire2.analytics.analyticsCollectionEnabled' ) ;
10
11
export const AUTOMATICALLY_TRACK_USER_IDENTIFIER = new InjectionToken < boolean > ( 'angularfire2.analytics.trackUserIdentifier' ) ;
11
12
export const APP_VERSION = new InjectionToken < string > ( 'angularfire2.analytics.appVersion' ) ;
@@ -27,6 +28,7 @@ export class AngularFireAnalytics {
27
28
@Optional ( ) @Inject ( FIREBASE_APP_NAME ) nameOrConfig :string | FirebaseAppConfig | null | undefined ,
28
29
@Optional ( ) router :Router ,
29
30
@Optional ( ) @Inject ( AUTOMATICALLY_SET_CURRENT_SCREEN ) automaticallySetCurrentScreen :boolean | null ,
31
+ @Optional ( ) @Inject ( AUTOMATICALLY_LOG_SCREEN_VIEWS ) automaticallyLogScreenViews :boolean | null ,
30
32
@Optional ( ) @Inject ( ANALYTICS_COLLECTION_ENABLED ) analyticsCollectionEnabled :boolean | null ,
31
33
@Optional ( ) @Inject ( AUTOMATICALLY_TRACK_USER_IDENTIFIER ) automaticallyTrackUserIdentifier :boolean | null ,
32
34
@Optional ( ) @Inject ( APP_VERSION ) providedAppVersion :string | null ,
@@ -45,7 +47,7 @@ export class AngularFireAnalytics {
45
47
runOutsideAngular ( zone )
46
48
) ;
47
49
48
- if ( router && automaticallySetCurrentScreen !== false ) {
50
+ if ( router && ( automaticallySetCurrentScreen !== false || automaticallyLogScreenViews !== false ) ) {
49
51
const app_name = providedAppName || DEFAULT_APP_NAME ;
50
52
const app_version = providedAppVersion || DEFAULT_APP_VERSION ;
51
53
const activationEndEvents = router . events . pipe ( filter < ActivationEnd > ( e => e instanceof ActivationEnd ) ) ;
@@ -56,9 +58,13 @@ export class AngularFireAnalytics {
56
58
const url = navigationEnd . url ;
57
59
const screen_name = activationEnd . snapshot . routeConfig && activationEnd . snapshot . routeConfig . path || undefined ;
58
60
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
+ }
62
68
} ) ,
63
69
runOutsideAngular ( zone )
64
70
) . subscribe ( ) ;
0 commit comments