1

相关网站上的跟踪代码“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>

这是该站点上调试器的屏幕截图:

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 来查看是否正在发送信标。它正在站点 1 上发送,但不在站点 2 上。

谢谢您的帮助!

4

2 回答 2

2

_setDomainName告诉 Google Analytics cookie 将自己存储在哪里。site1.com浏览器不允许在from上设置 cookie site2.com。留在您的主站点上并在您的第二个.site1.com站点上更新它。.site2.com

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

于 2012-10-31T10:51:04.110 回答
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

于 2012-10-29T19:54:04.027 回答