File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/src/app/services/analytics.service.ts
import { Capacitor } from '@capacitor/core';
import { NavigationEnd, Router } from '@angular/router';
import { Injectable } from '@angular/core';
import { FirebaseAnalytics } from "@capacitor-community/firebase-analytics";
import { filter } from "rxjs/operators";
import { environment } from '../../environments/environment';
@Injectable({
providedIn: 'root'
})
export class AnalyticsService {
constructor(private router: Router) {
this.initialize();
this.router.events.pipe(
filter((e: any) => e instanceof NavigationEnd),
).subscribe((e: any) => {
this.setScreenName(e.url);
});
}
initialize() {
if (!Capacitor.isNativePlatform()) {
FirebaseAnalytics.initializeFirebase(environment.firebase);
}
}
setScreenName(screenName) {
FirebaseAnalytics.setScreenName({
screenName: screenName,
nameOverride: screenName
});
}
logEvent(name, origin, category = 'click', data = '') {
if (name) {
FirebaseAnalytics.logEvent({
name: name.replace(/\s/g, "_"),
params: {
category: category,
origin: origin,
data: data
},
});
}
}
setUserId(id) {
FirebaseAnalytics.setUserId({
userId: id,
});
}
}