Менеджер тегов Google не отправляет запрос на аналитику после изменения маршрута - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь внедрить менеджер тегов Google в приложение реакции. Он работает при перезагрузке страницы, но когда я перемещаюсь между моим приложением по маршрутам, он не регистрирует просмотр страницы в Google Analytics.

Я пробовал react-gtm-module, но он также работает при перезагрузке, а не при изменении маршрута.

index.html добавленный ниже код в теге head.

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

добавлен код под тегом body.

<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->

и внутри моих компонентов componentDidMount, я нажимаю новый pageView в dataLayer

dataLayer.push({
    event: 'Pageview',
    pagePath: 'page-path-here',
    pageTitle: 'page-title-here',
});

Я создал переменные pagePath и pageTitle dataLayer и назначил их тегу Google Analytics. Я также создал пользовательский триггер PageView и добавил его к триггерам запуска в теге Google Analytics.

Переменные уровня данных data layer variables list

Пользовательские триггеры custom trigger

Присвоение переменных уровня данных тегу Analytics google analytics data layer variables

Может кто-нибудь указать мне правильное направление?

Edit: Представление переменной уровня данных данных google analytics data layer variables detai

Первая загрузка (перезагрузка) google analytics data layer variables detai

изменение маршрута google analytics data layer variables detai

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Я изменил свой код componentDidMount на

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
    event: 'Pageview',
    pagePath: 'page-path-here',
    pageTitle: 'page-title-here',
});

Push Dayalayer

Теперь я могу видеть просмотры страниц в Google Analytics при изменении маршрута.

0 голосов
/ 28 июня 2019

Код, который вы написали в index.html, запускается только один раз при загрузке страницы, если вы хотите зарегистрировать событие при изменении страницы, вам нужно запустить его на маршрутах, которые вы хотите вызвать, вы можете получить доступ к dataLayer переменная от window

...