“Google Analytics跟踪代码”不会在“第三方”域上触发

时间:2012-10-29 16:33:25

标签: javascript html google-analytics

相关网站上的跟踪代码“site2”如下所示:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
  _gaq.push(['_setDomainName', 'site1.com']);
  _gaq.push(['_setAllowLinker', true]);
  _gaq.push(['_trackPageview']);
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
</body>
</html>

以下是该网站上调试器的屏幕截图:

Screesnhot of GA Debug

前一个域上的_setDomainName方法,“site1”在它之前有一个句点:

<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXXX-1']);
  _gaq.push(['_setDomainName', '.site1.com']);
  _gaq.push(['_setAllowLinker', true]);
  _gaq.push(['_trackPageview']);
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>

虽然这可能会或可能不会阻止cookie传递到第二个域,但跟踪代码仍应至少触发,不是吗? 请注意,我们拥有两个域非常重要。我找不到任何会导致代码无法触发的原因,除非页面上的其他地方出现错误。我正在使用GA Debug来查看是否正在发送信标。它是在site1上发送的,但不是在site2上发送的。

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

_setDomainName告诉Google Analytics Cookie存储位置。浏览器不允许在site1.com site2.com上设置Cookie。在您的主网站上保留.site1.com,然后在第二个网站上将其更新为.site2.com

如果您想访问域之间的数据,则必须执行以下操作之一:

答案 1 :(得分:0)

我认为您不需要域名之前的时段。根据谷歌分析指南,您应该使用以下格式。

<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-12345-1']);
_gaq.push(['_setDomainName', 'example-petstore.com']);
_gaq.push(['_trackPageview']);
</script>

https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingSite#domainSubDomains