Google Analytics(分析):在网址中发送但不通过报告传递来源的跨域参数

时间:2013-11-26 18:40:27

标签: google-analytics cross-domain

这里的另一个跨域跟踪问题,我不能为我的生活弄清楚这个。

我有两个独立的域名,我在它们之间使用_link方法。我可以看到Google Analytics utm参数从1个域传递到另一个域但是尽管如此,当我到达第二个域时,我被视为新访问者(使用Google Analytics调试器,我看到一个新的访客ID和我的广告系列/源/媒体信息已被domaina的推荐所取代。

domaina.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网址参数,但就像我说的那样,没有源数据通过。

在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>

之前我已成功实现了此设置的跨域跟踪,这就是为什么我感到困惑,为什么这不起作用。

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您应该使用第二个跟踪器为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"]);

请注意,如果您使用多个级别的子域名(即secure.www.domainb.com),请附加一个。到setDomainName参数,如下所示:

_gaq.push(["t2._setDomainName",".domainb.com"]);