Google Analytics跨域跟踪和_setDomainName()

问题描述:

我试图在两个完全不同的域(不是子域)之间设置跨域跟踪。浏览谷歌文档的不同页面似乎给了我不同的建议,以便在_setDomainName方法中放置什么。Google Analytics跨域跟踪和_setDomainName()

我想不通的时候,我应该使用哪三个:

_gaq.push(['_setDomainName', 'mysite.com']); 
_gaq.push(['_setDomainName', '.mysite.com']); 
_gaq.push(['_setDomainName', 'none']); 

有任何人可以给我一些指导或解释?

本,最好的解释是在谷歌文档页面 - http://code.google.com/apis/analytics/docs/tracking/gaTrackingSite.html#domainToNone。了解这个页面,有很多方法可以配置您的GA设置,并且没有明确的方式来说明“这是您需要设置跨域跟踪的方式”,而无需更多地了解您所需的配置。该页面上的场景肯定会有所帮助。

使用_setDomainName的不同变化有3个不同的原因。

  • “无” - 你只需要当你想从任何其子域的独立跟踪*域名使用此功能,因为该参数将成为一个域名无法访问的饼干其子域。

  • 'mysite.com' - 在另一个域的域和子目录之间进行跟踪时使用此项。例如,您的'mysite.com'个人资料还应记录来自'yourblog.othersite.com'的点击。

  • '.mysite.com' - 当您希望跨域和其子域进行跟踪时使用此功能。这将把*域和子域视为一个实体并在同一个配置文件中进行跟踪。例如,'mysite.com'个人资料应记录'blogs.mysite.com'和'shop.mysite.com'。

我建议设置一些测试配置文件并试验配置,这样您就不会“肮脏”你的真实数据。

希望这会有所帮助!

+0

我已经阅读过这个Google页面约100次。你的解释有助于澄清一点。我看到,对于我的情况,似乎示例代码告诉我,我的主站点(mysite.com)应将_setDomainName设置为“mystie.com”,但另一个站点(my-ecommerce.com)应将_setDomainName到“无”。我不知道为什么。 – Ben 2012-03-02 15:53:30

+0

你确定吗?我认为'没有'意味着你想确保你的子域没有跟踪该配置文件。我认为在你的例子中,你会在该网站上和'my-ecommerce.com'上将它设置为'mysite.com'。希望你能快速测试这个理论,而不会对你的数据产生任何抵触情绪。您可以设置它并使用新的实时报告对其进行采样,以查看其跟踪是否正确。 – shanabus 2012-03-02 16:37:42

+0

是的。如果您查看文档的这一部分:http://code.google.com/intl/zh-CN/apis/analytics/docs/tracking/gaTrackingSite.html#domainAndSubDirectory,您将在“主”网站上看到他们使用网址,然后在“博客”网站上,他们使用“无”。我实际上是在一些测试站点上进行全新安装,以便全面测试,但只是尝试尽可能减少未知数。感谢您的输入。 – Ben 2012-03-02 16:43:48

Docs页面有点落后,因为最近有一些更改改变了最好的方式。

_setDomainName的默认设置是'auto'。这会将Cookie设置为您的完整域,除非您在www域中,在这种情况下,它将设置为mysite.com而不带前导点。这种设置可能会导致问题,并且我避免与他们粘在一起。我总是改变它

有2个选项设置域名为www.mysite.com

  • _setDomainName('.mysite.com') - >当你想要跟踪所有的子域时,这是必要的。
  • _setDomainName('www.mysite.com') - >如果你不想跟踪你的子域名,你应该使用这个。

在99%的案例中,我选择了第一个选项。将其设置为*域名,但使用前导点。 你会看到很多人主张反对领先点。像这个旧的但好帖子从roirevolution。领先点的问题是它可能会导致cookie重置。但只有当某人已经拥有cookie时才会发生。如果这是新的实现,则不存在此问题。

_setDomainName('none')相当于_setDomainName('auto') + _setAllowHash(false)。但由于_setAllowHash(false)已被弃用,我猜_setDomainName('none')也应该被弃用。

+0

我已将域名设置为“www.mysite.com”,但GA仍将cookie域设置为“.mysite .com'因此打破了我的CDN子域名。那么,我应该使用'none'吗? – 2013-09-19 16:27:53

+0

RE:'none' - 将_setDomainName设置为'none'实际上允许Cookie数据被所有域共享。请参阅:http://www.seotakeaways.com/cross-domain-tracking-google-analytics-works/ – 2013-10-09 00:42:15

我想mysite.com将跨网站及其第一级子域名(如mysite.comcats.mysite.com)跟踪,并.mysite.com将跟踪跨站点和它的第一和第二级子域名(如mysite.comcats.mysite.comstore.cats.mysite.com)。

我基于谷歌和其他文章说的。

none将不允许任何子域跟踪(所以我假设它将它设置为将cookie的域设置为:www.mysite.com)。

即时猜测默认选项auto将通过document.domain的设置为www.mysite.com(但如果可能mysite.com不是基于Eduardo的答案www域上/下允许让聪明的第一级子域名跟踪)。

auto/none是我猜测的结果,不知道如果你登录到blah.mysite.com并且设置了none/auto选项,它会为该域放置什么。

如果是跨域

tracking,_gaq.push(['_setDomainName', 'mysite.com']); 

_gaq.push(['_setDomainName', '.mysite.com']); 

不作任何区别,因为Cookie信息不能跨越这两种不同的结构域共享的任何方式。

我设置了域1和域2之间的跟踪,单向跟踪。最初,正如Google Analytics(分析)所建议的,我在两个域上都添加了_gaq.push(['_setDomainName', 'none']);。这是为了进行新的Google Analytics A/B测试,A/B测试验证导致错误。因此,我从域1中删除了_gaq.push(['_setDomainName', 'none']);,并将其保留在域2上,因此它工作得很好。

I've documented it here

+0

此处的一些总结很好,可以防止将其删除为“未回复”或甚至是垃圾邮件。 – 2012-10-11 18:13:30