|
| 1 | +# Comenzando con Google Analytics |
| 2 | + |
| 3 | +`AngularFireAnalytics` importa dinámicamente la biblioteca `firebase/analytics` y proporciona una versión basada en promesas [Firebase Analytics SDK (`firebase.analytics.Analytics`)](https://firebase.google.com/docs/reference/js/firebase.analytics.Analytics.html). |
| 4 | + |
| 5 | +### API: |
| 6 | + |
| 7 | +```ts |
| 8 | +class AngularFireAnalytics { |
| 9 | + updateConfig(options: {[key:string]: any}): Promise<void>; |
| 10 | + |
| 11 | + // from firebase.analytics() proxy: |
| 12 | + logEvent(eventName: string, eventParams?: {[key: string]: any}, options?: analytics.AnalyticsCallOptions): Promise<void>; |
| 13 | + setCurrentScreen(screenName: string, options?: analytics.AnalyticsCallOptions): Promise<void>; |
| 14 | + setUserId(id: string, options?: analytics.AnalyticsCallOptions): Promise<void>; |
| 15 | + setUserProperties(properties: analytics.CustomParams, options?: analytics.AnalyticsCallOptions): Promise<void>; |
| 16 | + setAnalyticsCollectionEnabled(enabled: boolean): Promise<void>; |
| 17 | + app: Promise<app.App>; |
| 18 | +} |
| 19 | + |
| 20 | +COLLECTION_ENABLED = InjectionToken<boolean>; |
| 21 | +APP_VERSION = InjectionToken<string>; |
| 22 | +APP_NAME = InjectionToken<string>; |
| 23 | +DEBUG_MODE = InjectionToken<boolean>; |
| 24 | +CONFIG = InjectionToken<Config>; |
| 25 | +``` |
| 26 | + |
| 27 | +### Uso: |
| 28 | + |
| 29 | +```ts |
| 30 | +import { AngularFireAnalyticsModule } from '@angular/fire/compat/analytics'; |
| 31 | + |
| 32 | +@NgModule({ |
| 33 | + imports: [ |
| 34 | + AngularFireModule.initializeApp(environment.firebase), |
| 35 | + AngularFireAnalyticsModule |
| 36 | + ] |
| 37 | +}) |
| 38 | +export class AppModule { } |
| 39 | +``` |
| 40 | + |
| 41 | +`AngularFireAnalyticsModule` importará y configurará dinámicamente `firebase/analytics`. Se registrará automáticamente un evento `page_view` (consulte `CONFIG` a continuación si desea desactivar este comportamiento). |
| 42 | + |
| 43 | +En su componente, puede inyectar dependencia `AngularFireAnalytics` y hacer llamadas contra el SDK: |
| 44 | + |
| 45 | +```ts |
| 46 | +import { AngularFireAnalytics } from '@angular/fire/compat/analytics'; |
| 47 | + |
| 48 | +constructor(analytics: AngularFireAnalytics) { |
| 49 | + analytics.logEvent('custom_event', { ... }); |
| 50 | +} |
| 51 | +``` |
| 52 | + |
| 53 | +## Rastreando visualizaciones |
| 54 | + |
| 55 | +Puede registrar [eventos `screen_view`](https://firebase.google.com/docs/reference/js/firebase.analytics.Analytics.html#parameters_10) por ti mismo, por supuesto, pero AngularFire proporciona el `ScreenTrackingService` que se integra automáticamente con Angular Router para proporcionar a Firebase un seguimiento de visualización de pantalla. Simplemente puede integrar así: |
| 56 | + |
| 57 | +```ts |
| 58 | +import { AngularFireAnalyticsModule, ScreenTrackingService } from '@angular/fire/compat/analytics'; |
| 59 | + |
| 60 | +@NgModule({ |
| 61 | + imports: [ |
| 62 | + AngularFireModule.initializeApp(environment.firebase), |
| 63 | + AngularFireAnalyticsModule |
| 64 | + ], |
| 65 | + providers: [ |
| 66 | + ScreenTrackingService |
| 67 | + ] |
| 68 | +}) |
| 69 | +export class AppModule { } |
| 70 | +``` |
| 71 | + |
| 72 | +`AngularFireAnalyticsModule` inicializará `ScreenTrackingService` si se proporciona. |
| 73 | + |
| 74 | +## Rastreando Identidificadores de Usuario |
| 75 | + |
| 76 | +Para enriquecer sus datos de Analytics, puede realizar un seguimiento del usuario que ha iniciado sesión configurando [`setuserid`](https://firebase.google.com/docs/reference/js/firebase.analytics.Analytics.html#setuserid) y [` setUserProperties`](https://firebase.google.com/docs/reference/js/firebase.analytics.Analytics.html#set-user-properties). AngularFire proporciona un `UserTrackingService` que importará dinámicamente `firebase/auth`, monitoreará los cambios en el usuario que inició sesión y llamará a `setuserid` automáticamente. |
| 77 | + |
| 78 | + |
| 79 | +```ts |
| 80 | +import { AngularFireAnalyticsModule, UserTrackingService } from '@angular/fire/compat/analytics'; |
| 81 | + |
| 82 | +@NgModule({ |
| 83 | + imports: [ |
| 84 | + AngularFireModule.initializeApp(environment.firebase), |
| 85 | + AngularFireAnalyticsModule |
| 86 | + ], |
| 87 | + providers: [ |
| 88 | + UserTrackingService |
| 89 | + ] |
| 90 | +}) |
| 91 | +export class AppModule { } |
| 92 | +``` |
| 93 | + |
| 94 | +`AngularFireAnalyticsModule` inicializará `UserTrackingService` si se proporciona. |
| 95 | + |
| 96 | +## Configurando con Inyección de Dependencia |
| 97 | + |
| 98 | +### Configura Google Analtyics con `CONFIG` |
| 99 | + |
| 100 | +El uso del token DI `CONFIG` (*default: {}*) le permitirá configurar Google Analytics. Por ejemplo, puede omitir el envío del evento `page_view` inicial, anonimizar las direcciones IP y deshabilitar las señales de personalización de anuncios para todos los eventos de la siguiente manera: |
| 101 | + |
| 102 | +```ts |
| 103 | +import { AngularFireAnalyticsModule, CONFIG } from '@angular/fire/compat/analytics'; |
| 104 | + |
| 105 | +@NgModule({ |
| 106 | + imports: [ |
| 107 | + AngularFireModule.initializeApp(environment.firebase), |
| 108 | + AngularFireAnalyticsModule |
| 109 | + ], |
| 110 | + providers: [ |
| 111 | + { provide: CONFIG, useValue: { |
| 112 | + send_page_view: false, |
| 113 | + allow_ad_personalization_signals: false, |
| 114 | + anonymize_ip: true |
| 115 | + } } |
| 116 | + ] |
| 117 | +}) |
| 118 | +export class AppModule { } |
| 119 | +``` |
| 120 | + |
| 121 | +Consulte la documentación de gtag.js para conocer las diferentes opciones de configuración a su disposición. |
| 122 | + |
| 123 | +### Usar DebugView `DEBUG_MODE` |
| 124 | + |
| 125 | +Para usar [DebugView en Analytics](https://console.firebase.google.com/project/_/analytics/debugview), establezca `DEBUG_MODE` en `true` (*default: false*). |
| 126 | + |
| 127 | +### Restree despliegues con `APP_NAME` y `APP_VERSION` |
| 128 | + |
| 129 | +Si proporciona `APP_NAME` y `APP_VERSION` (*default: undefined*), podrá [seguir la adopción de la versión](https://console.firebase.google.com/project/_/analytics/latestrelease) de su PWA. |
| 130 | + |
| 131 | +### Deshabilitar la recopilación de análisis a través de `COLLECTION_ENABLED` |
| 132 | + |
| 133 | +Si establece `COLLECTION_ENABLED` (*default: true*) en `false`, la recopilación de análisis se desactivará para esta aplicación en este dispositivo. Para volver a optar por la recopilación de análisis, puede llamar a `setAnalyticsCollectionEnabled(true)`. |
| 134 | + |
| 135 | +Poner estas API en uso con cookies le permitiría crear un esquema de recopilación de análisis flexible que respetaría el deseo de privacidad de su usuario. |
0 commit comments