File

src/app/@core/utils/analytics.service.ts

Index

Properties
Methods

Constructor

constructor(location: Location, router: Router)
Parameters :
Name Type Optional
location Location no
router Router no

Methods

trackEvent
trackEvent(eventName: string)
Parameters :
Name Type Optional
eventName string no
Returns : void
trackPageViews
trackPageViews()
Returns : void

Properties

Private enabled
enabled: boolean
Type : boolean
import { Injectable } from '@angular/core';
import { NavigationEnd, Router } from '@angular/router';
import { Location } from '@angular/common';
import { filter } from 'rxjs/operators';

declare const ga: any;

@Injectable()
export class AnalyticsService {
  private enabled: boolean;

  constructor(private location: Location, private router: Router) {
    this.enabled = false;
  }

  trackPageViews() {
    if (this.enabled) {
      this.router.events.pipe(
        filter((event) => event instanceof NavigationEnd),
      )
        .subscribe(() => {
          ga('send', {hitType: 'pageview', page: this.location.path()});
        });
    }
  }

  trackEvent(eventName: string) {
    if (this.enabled) {
      ga('send', 'event', eventName);
    }
  }
}

results matching ""

    No results matching ""