Запустите GTM (Google Tag Manager) в Angular SPA - PullRequest
0 голосов
/ 07 февраля 2019

Я строю Angular 6 SPA.При использовании Google Analytics я использую следующий код:

<script>
  (function(i, s, o, g, r, a, m) {
            i['GoogleAnalyticsObject'] = r;
            i[r] = i[r] || function() {
                (i[r].q = i[r].q || []).push(arguments)
            }, i[r].l = 1 * new Date();
            a = s.createElement(o),
                m = s.getElementsByTagName(o)[0];
            a.async = 1;
            a.src = g;
            m.parentNode.insertBefore(a, m)
        })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
ga('create', 'XXXXXXX', 'auto');    //tracking code

в index.html Поскольку я хочу активировать аналитику для каждой страницы внутри app.component.ts, у меня есть следующий код:

this.router.events.subscribe(event => {
  if (event instanceof NavigationEnd) {
     (window as any).ga("set", "page", event.urlAfterRedirects);
        (window as any).ga("send", "pageview");
  }
}

Пока все хорошо.Проблема с Google Tag Manager.Вот код в index.html:

<script nonce="1234567890">
    (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],
            j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true;
        j.nonce = "1234567890"; j.src =
            '//www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
  })(window, document, 'script', 'dataLayer', 'XXXXXXXX');
</script>

Выше работает только once при угловой загрузке.Я не могу найти аналогичный выше способ, чтобы заставить его работать снова, когда маршрутизатор Angular перешел на другой маршрут.Есть идеи?

1 Ответ

0 голосов
/ 09 февраля 2019

Запуск один раз - это нормально для GTM и SPA.Базовое событие просмотра страницы в GTM соответствует фактической загрузке страницы, поэтому оно запускается только один раз с помощью SPA.Однако вы можете использовать события истории GTM в GTM для запуска тегов просмотра страниц GA в вашем приложении SPA.Вот документ https://support.google.com/tagmanager/answer/7679322?hl=en

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...