2016-01-27 2 views
3

Сообщается о предупреждении Tag Assistant, но это все еще беспокоит меня.«Идентификатор того же веб-ресурса отслеживается дважды». - Google Analytics

Это на этой странице: https://goo.gl/Y6O4Li

И это моя analytics.js реализация:

<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','//www.google-analytics.com/analytics.js','ga'); 

ga('create', 'UA-XXXXXXXX-X', 'auto'); 

var visited_pages = []; 

visited_pages.push(document.location.pathname); 

//ga('send', 'pageview'); 
</script> 

<script> 
function gaTrack(path) { 
    setTimeout(function() { 
     visited_pages.push(path); 

     ga('set', { page: path }); 
     ga('send', 'pageview', path); 
    }, 1); 
} 
</script> 

Он находится в <head></head> теге, а Tag Assistant хочет.

Я использую gaTrack везде, где я делаю history.pushState, например:

history.pushState(null, null, headnav.data('uri')); 
gaTrack(headnav.data('uri')); 

И это не все хорошо, ничего это undefined или недействительным, но все же предупреждение получает поднятый в Tag Assistant.

Так что мои вопросы (которые могут помочь кому-то в будущем):

  1. мой подход не так?
  2. Является ли мой analytics.js реализация и логика внутри gaTrack функция неправильная?
  3. Есть ли что-то, что я мог бы изменить внутри Веб-интерфейс Google Analytics, который мог бы решить мои проблемы здесь?
+0

Вы можете поделиться скриншот триггера и помечать вы используете в GTM? –

+0

Почему вы звоните в GA, чтобы отправить страницу дважды (строка 27 и 990)? – ravb79

ответ

1

Если вы используете менеджер тэгов google, он также будет включать в себя аналитику google.

таким образом, совместимый способ включить Google Analytics является

<script> 
    window['GoogleAnalyticsObject'] = 'ga'; 
    window['ga'] = window['ga'] || function() { 
     (window['ga'].q = window['ga'].q || []).push(arguments) 
    }; 
    ga('require','ecommerce'); 
    //etc 
    </script> 
</head> 
<body> 
    <!-- Google Tag Manager --> 
    <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXXXX" 
    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 
    <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= 
    '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 
    })(window,document,'script','dataLayer','GTM-XXXXXX');</script> 
    <!-- End Google Tag Manager --> 
0

Хром не корректно обрабатывает синтаксис HTML.

<noscript>A<noscript>B</noscript>C</noscript> 

будет «исправлено» в

<noscript>A<noscript>B</noscript>C 

Таким образом, если у вас есть одностраничный-приложение и использовать phantomjs для отображения страницы в NoScript теге любые Embeded теги NoScript будет мешать родительский тег noscript, а затем приступить к тому, чтобы аналитика google включалась дважды, как только правильно, так и в другое время, будучи встроенной в тег noscript.

Смежные вопросы