相关网站“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>
这是该站点上调试器的屏幕截图:
前面域“site1”上的 _setDomainName 方法前面有句点:
<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 调试来查看是否正在发送信标。它在 site1 上发送,而不是在 site2 上发送。
感谢您的帮助!
最佳答案
_setDomainName
告诉 Google Analytics cookie 将自己存储在哪里。浏览器不允许在 site2.com
的 site1.com
上设置 cookie。在您的主站点上保留 .site1.com
并在您的第二个站点上将其更新为 .site2.com
。
如果您想在域之间访问数据,您必须执行以下操作之一:
- 使用 linkByPost 等标记域之间的链接...在此处阅读有关它的谷歌文档:https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingSite
- 或者我建议查看 Google Analytics on Steroids,因为它们更优雅地解决了这个用例:https://github.com/CardinalPath/gas#cross-domain
关于javascript - Google Analytics 跟踪代码不会在 "3rd Party"域上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13125805/