使用Google Analytics进行子域名的跨域追踪

5
我刚刚设置了谷歌分析跨域跟踪。我看了一些例子,但想确保我做得正确。我遵循的文档在这里:http://support.google.com/analytics/bin/static.py?page=guide.cs&guide=1034143&topic=1033979
我基本上有三个网站,它们都是子域名。
one.mysite.com
two.mysite.com
three.mysite.com

我已经将以下内容添加到默认的分析脚本中,并确保对于_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个回答

9
对于跨子域流量,您不需要设置_setAllowLinker,但也没有坏处。该函数的作用是启用传输Google Analytics cookie进行跨域跟踪的功能。这种功能由函数_link启用,但对于您的使用情况并非必需。
如果将setDomainName设置为none,则会将域哈希设置为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

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


啊...所以我只需要_gaq.push(['_setDomainName', 'mysite.com']);来跟踪三个子域,而不需要在锚点上使用_gaq.push(['_link'...吗? - diggersworld
没错。只要您不跨越不同的根域进行跟踪即可。例如,如果您有mysite.commy-shoppingcart-site.com,则需要使用_link。基本上,您应该遵循“在域及其子域之间跟踪”的指南。具体请参见:http://code.google.com/apis/analytics/docs/tracking/gaTrackingSite.html#domainSubDomains - Yahel
看了链接的例子,这是不是意味着我需要使用'.mysite.com'? - diggersworld
你可以选择 .mysite.com 或者 mysite.com。如果你已经使用了 (none) 的方法,那么不在后面加上句号的优势就不存在了(因为这与你的主域名默认设置兼容),所以最好还是选择 .mysite.com - Yahel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接