feat(analytics): enable analytic

This commit is contained in:
Dmitry Nehaychik 2017-09-20 13:55:34 +03:00
parent 3eee634861
commit e8cbd479c6
3 changed files with 37 additions and 2 deletions

View file

@ -4,6 +4,7 @@ import { NbAuthModule, NbDummyAuthProvider } from '@nebular/auth';
import { throwIfAlreadyLoaded } from './module-import-guard';
import { DataModule } from './data/data.module';
import { AnalyticsService } from './utils/analytics.service';
const NB_CORE_PROVIDERS = [
...DataModule.forRoot().providers,
@ -20,6 +21,7 @@ const NB_CORE_PROVIDERS = [
},
},
}).providers,
AnalyticsService,
];
@NgModule({

View file

@ -0,0 +1,25 @@
import {Injectable} from '@angular/core';
import {Router, NavigationEnd} from '@angular/router';
import {Location} from '@angular/common';
import {filter} from 'rxjs/operator/filter';
declare const ga: any;
@Injectable()
export class AnalyticsService {
private _enabled: boolean;
constructor(private _location: Location, private _router: Router) {
this._enabled = window.location.href.indexOf('akveo.com') >= 0;
}
trackPageViews() {
if (this._enabled) {
filter.call(this._router.events, (event) => event instanceof NavigationEnd)
.subscribe(() => {
ga('send', {hitType: 'pageview', page: this._location.path()});
});
}
}
}

View file

@ -3,11 +3,19 @@
* Copyright Akveo. All Rights Reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*/
import { Component } from '@angular/core';
import { Component, OnInit } from '@angular/core';
import { AnalyticsService } from './@core/utils/analytics.service';
@Component({
selector: 'ngx-app',
template: '<router-outlet></router-outlet>',
})
export class AppComponent {
export class AppComponent implements OnInit {
constructor(private analytics: AnalyticsService) {
}
ngOnInit(): void {
this.analytics.trackPageViews();
}
}