fix(analytics): update analytics service, add google tag manager support

This commit is contained in:
denStrigo 2018-11-23 18:54:28 +03:00 committed by Sergey Andrievskiy
parent c019de67c6
commit 995e2c4a80
2 changed files with 16 additions and 5 deletions

View file

@ -22,19 +22,27 @@ export class AnalyticsService {
filter((event) => event instanceof NavigationEnd), filter((event) => event instanceof NavigationEnd),
) )
.subscribe(() => { .subscribe(() => {
ga('send', {hitType: 'pageview', page: this.location.path()}); this.gtm({'pageview': this.location.path()});
}); });
} }
} }
trackEvent(eventName: string, eventVal: string = '') { trackEvent(eventName: string, eventVal: string = '') {
if (this.enabled && this.window.ga) { if (this.enabled) {
ga('send', 'event', eventName, eventVal); this.gtm({ event: eventName, value: eventVal });
} }
}
if (!this.window.ga) { private isGaLoaded() {
return this.window.ga;
}
private gtm(params) {
if (this.isGaLoaded()) {
this.window.dataLayer.push(params);
} else {
setTimeout(() => { setTimeout(() => {
this.trackEvent(eventName, eventVal); this.gtm(params);
}, 500); }, 500);
} }
} }

View file

@ -11,6 +11,9 @@
<link rel="icon" type="image/x-icon" href="favicon.ico"> <link rel="icon" type="image/x-icon" href="favicon.ico">
<!-- Google Tag Manager --> <!-- Google Tag Manager -->
<script>
dataLayer = [];
</script>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=