Я новичок в Google Analytics, поэтому я пошел дальше и добавил код gtag.js
в заголовок HTML-страницы, и он отлично gtag.js
для начальной загрузки страницы. Однако я использую React и response-router для динамического изменения URL-адреса, и Google Analytics не подбирает изменения на активной странице или новых кликах, когда изменение URL-адреса происходит из моего SPA.
Ответы, которые я нашел, предназначены для ga.js
вместо gtag.js
Я попытался приспособить предложение документации Google здесь с прослушивателем URL-адресов в других ответах, чтобы соответствовать моим потребностям.. но хотя код работает при динамической загрузке страницы, в GA ничего не отправляется.
window.gtag && history.listen((location)=>{
console.log('>>>', location.pathname)
gtag('config', 'GA_TRACKING_ID', {'page_path': location.pathname});
// window.ga('set', 'page', location.pathname); //--> this would have worked with ga.js
// window.ga('send', 'pageview', location.pathname);
});
Решение оказалось на стороне Диспетчера тегов Google. Увольнение события, как показано в документации GTM, которую я связывал, не принесет никакой пользы, если на этом этапе не будет триггера на стороне GTM, и тег, прослушивающий этот триггер.
поэтому шаг:
VirtualPageview
VirtualPageview
событие VirtualPageview
. Это делается, как показано ниже-
export function virtualPageviewOnRouteChange(history){
let previousPathname = null
window.gtag && history.listen((location)=>{
if(previousPathname != location.pathname){
previousPathname = location.pathname;
gtag('config', 'GA_TRACKING_ID', {'page_path':location.pathname});
dataLayer.push({
'event':'VirtualPageview',
'virtualPageURL':location.pathname,
});
}
});
}
Полагаю, это может быть проблема с Реактивом. Попробуйте проверить этот поток: React router 4 history.listen никогда не срабатывает
gtag('config', 'GA_TRACKING_ID', {'page_path':location.pathname});
тогдаdataLayer.push()
будет достаточно для запуска тега.