另一个跨域跟踪问题,我一辈子都无法解决。
我有两个独立的域,在它们之间使用_link方法。我可以看到Google Analytics utm参数从一个域传递到另一个域,但尽管如此,当我到达第二个域时,我被算作新访客(使用Google Analytics调试器,我看到一个新的访客ID,我的活动/来源/媒体信息已被domaina的推荐取代)。
domain.com上的代码:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(["_setAccount", "UA-111111"]);
_gaq.push(["_setDomainName", "none"]);
_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>
链接看起来是这样的:<a href="https://secure.domainb.com" onClick="_gaq.push(['_link', 'https://secure.domainb.com']); return false;">Donate Now</a>
当我点击该链接时,我会被带到secure.domainb.com,并附上所有GA URL参数,但正如我所说,没有通过任何源数据。
secure.domainb.com上的代码(我对此没有直接控制权,请注意,这个页面上有2个UA代码,我的是第二个列出的):
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(["_setAccount","UA-222222"]);
_gaq.push(["_trackPageview"]);
_gaq.push(["_setAccount","UA-111111"]);
_gaq.push(["_setAllowLinker",true]);
_gaq.push(["_setDomainName","none"]);
_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>
我以前已经用这个设置成功地实现了跨域跟踪,这就是为什么我很困惑为什么它不起作用。
有什么想法吗?
提前谢谢。
您应该为secure.domainb.com.生成的第二个页面视图使用第二个跟踪器
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(["_setAccount","UA-222222"]);
_gaq.push(["_trackPageview"]);
_gaq.push(["t2._setAccount","UA-111111"]);
_gaq.push(["t2._setAllowLinker",true]);
_gaq.push(["t2._setDomainName","none"]);
_gaq.push(["t2._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>
您应该使用调用setDomainName来定义域,其中包含:
_gaq.push(["_setDomainName","domaina.com"]);
和
_gaq.push(["t2._setDomainName","domainb.com"]);
请注意,如果您使用多个级别的子域(即securewww.domainb.com),请附加一个。到setDomainName参数,如下所示:
_gaq.push(["t2._setDomainName",".domainb.com"]);