Я пытаюсь внедрить диспетчер тегов Google в реагирующее приложение. Он работает при перезагрузке страницы, но когда я перемещаюсь между своим приложением по маршрутам, он не регистрирует просмотр страницы в аналитике Google.
Я пробовал 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.
Переменные уровня данных

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

Назначение переменных уровня данных тегу Analytics

Может ли кто-нибудь указать мне правильное направление?
Редактировать:
Представление переменных уровня данных подробностей

Первая загрузка (перезагрузка)

Изменение маршрута

@kgrg Я вижу, что событие отправляется при первой загрузке. Изменение маршрута не запускает триггер pageView. Нужно ли мне что-то делать после нажатия на dataLayer, например, вызывать любую функцию диспетчера тегов?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Код, который вы написали в index.html, запускается только один раз при загрузке страницы, если вы хотите зарегистрировать событие при изменении страницы, вам нужно инициировать то же самое на маршрутах, которые вы хотите инициировать, вы можете получить доступ к переменной dataLayer из window
Я изменил свой код componentDidMount на
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'Pageview',
pagePath: 'page-path-here',
pageTitle: 'page-title-here',
});
Теперь я могу видеть просмотры страниц в Google Analytics при изменении маршрута.
Настройка вроде правильная, хотя подробные настройки переменных в пост не включены. Что вы видите в представлении отладки GTM? Вы видите событие? Каковы значения переменных? Какие теги активируются?