谷歌分析 - 一个页面上的多个跟踪器(cookie冲突)

Kub*_*der 55 javascript cookies google-analytics widget

我正在编写一个应该嵌入其他人的网站(一种小部件)的Web应用程序.我正在使用Google Analytics跟踪在嵌入网站上访问我脚本的所有实例的所有人.问题是我不知道如何使用它,因此它不会干扰这些网站自己的Google Analytics帐户.我将跟踪器变量存储在命名空间中,所以我认为应该这样做,但我没有意识到GA将其设置存储在cookie中(__ utma,__ utmz等),并且这些cookie由两个跟踪器使用,如果在同一页面上有两个...例如,如果我使用_setVar在Google Analytics中存储某种用户定义的变量,并且嵌入网站也是如此,我们会覆盖彼此的值......

当然,如果谷歌提供了一种将cookie的名称更改为自定义的方法,那将是最简单的,但我找不到任何方法来做到这一点.我想过使用cookie域或路径强制单独的cookie,但这不起作用,因为如果我将域或路径设置为真实域/路径以外的其他内容,则重新加载后该页面的cookie不可读. ..

有没有人知道在一个页面上有两个跟踪器并让它们使用单​​独的cookie以便它们不会覆盖彼此的设置?

或者,如果那是完全不可能的 - 是否有任何其他分析服务具有与GA类似的功能?(它必须具有事件和广告系列跟踪等高级功能......)

Pau*_*son 56

现在,使用新的异步跟踪代码可以轻松实现.:)

https://developers.google.com/analytics/devguides/collection/gajs/#MultipleCommands

  • 更新的链接:http://code.google.com/apis/analytics/docs/tracking/asyncUsageGuide.html#MultipleCommands (9认同)
  • 不是那么容易,在简单的情况下它可以工作,但你应该这样做:看看Torok帖子中的链接 - Google不建议在同一页面上使用多个分析帐户:https://developers.google.com/analytics/resources/concepts/ gaConceptsCookies?hl = nl-NL =如果您有多个帐户跟踪相同的网络媒体资源(例如一页或多组网页),则两个帐户都会读取并设置相同的Cookie集.通常不建议进行此设置. (4认同)

小智 18

您可以在网页上安装多个Google Analytics跟踪代码实例,以便将数据发送到您帐户中的多个媒体资源. https://support.google.com/analytics/answer/1032400?hl=en

或者您可以根据Google的说明发挥创意并执行以下操作.https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#multipletrackers

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-XXXX-Y', 'auto');
  ga('create', 'UA-XXXX-Y', 'auto', {'name': 'newTracker'});
  ga('send', 'pageview');
  ga('newTracker.send', 'pageview');

</script>
Run Code Online (Sandbox Code Playgroud)


Tör*_*bor 10

不必使用不同的Cookie名称,因为Google Analytics可以在同一页面上与多个跟踪器配合使用.查看问题解答Google Analytics - 多个帐户的多个跟踪器?.

更新

事实证明,使用多个跟踪器是一种工作方法,但有一些陷阱.其中之一就是,您不能为每个用户细分应用不同的用户细分.John Henson演示了一种强制GA使用不同cookie的解决方法,可能是您应该检查它.


小智 8

如果有人仍然有这个问题,并希望轻松粘贴,我的问题是使用我自己的谷歌跟踪我的代码,该代码被添加到可能也在使用谷歌跟踪的其他人的页面.我测试了这个并确认它按预期工作:

var _gaq = _gaq || [];

_gaq.push(['some_unique_name._setAccount', 'UA-xxxxxxxx-1']);
_gaq.push(['some_unique_name._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);
})();
Run Code Online (Sandbox Code Playgroud)

我也在使用事件

_gaq.push(['some_unique_name._trackEvent', 'Event Category', 'Event Action', 'Event Label']);
Run Code Online (Sandbox Code Playgroud)

如果有人发现问题,请告诉我.

  • 这对我来说非常有效 - 简单而有效. (2认同)