使用Google Analytics对子域进行跨域跟踪

时间:2011-12-09 14:41:09

标签: javascript google-analytics cross-domain analytics tracking

我刚设置谷歌分析跨域跟踪。
我已经看到了一些例子,但我想确保我已经正确完成了。
我所遵循的文件在这里:http://support.google.com/analytics/bin/static.py?page=guide.cs&guide=1034143&topic=1033979

我基本上有3个网站都是子域名。

one.mysite.com
two.mysite.com
three.mysite.com

我已将以下行添加到默认的Google Analytics脚本中,并确保为_setAccount使用相同的值。

_gaq.push(['_setDomainName', 'none']);
_gaq.push(['_setAllowLinker', true]);

现在......我有点困惑的部分是_setDomainName变量。

我是否应该在所有三个网站上将其保留为“none”并让_setAllowLinker完成工作,或者我是指单独指定域名,如下所示?

_gaq.push(['_setDomainName', 'one.mysite.com']); // used on one.mysite.com
_gaq.push(['_setDomainName', 'two.mysite.com']); // used on two.mysite.com
_gaq.push(['_setDomainName', 'three.mysite.com']); // used on three.mysite.com

1 个答案:

答案 0 :(得分:8)

对于跨子域流量,您需要设置_setAllowLinker,尽管没有任何伤害。该功能的作用是使您能够转移Google Analytics Cookie以进行跨域跟踪。由函数_link启用的功能对于您的用例不是必需的。

如果您将setDomainName设置为无,那么它的作用是将域哈希设置为1并将Cookie的域设置为当前域。这对于跨子域跟踪没有帮助,因为子域之间的流量将被视为引荐。

如果您没有要跟踪的第三级子域(例如foo.bar.example.com),您需要做的就是将您的域名设置为域的根目录,如下所示:

 _gaq.push(['_setDomainName', 'mysite.com']); // used on any mysite.com domain or subdomain

如果您认为自己需要进行第三级子域跟踪,则应在mysite.com前面设置一个前导时段,如下所示:

 _gaq.push(['_setDomainName', '.mysite.com']); // used on any mysite.com domain or subdomain as well as third level subdomains

你在这做的是两件事。一,你要声明应该设置哪个域名(在这种情况下,上述2个域名是相同的)你正在配置将用于创建“域哈希”的域名,这是Google Analytics Cookie中第一个以句点分隔的值。 Google Analytics使用“域哈希”来防止Cookie冲突;如果您在setDomainName中配置的值的域哈希值与ga.js检测到的cookie开头的域哈希值不一致,它将创建一组新的cookie并创建一个全新的访问(在你的情况下,这不是你想要的。)