Mem*_*fis 5 google-analytics multiple-accounts
我需要分割两个GA帐户的收集数据,让我们将它们命名为UA-XXXXXXX-1和UA-XXXXXXX-2.为了实现这一点,我使用了https://developers.google.com/analytics/devguides/collection/gajs/中的示例代码(在"将命令推送到多个跟踪器也可以工作"文本中),这是我的代码:
_gaq.push(['_setAccount', 'UA-XXXXXXX-1']);
_gaq.push(['_trackPageview']);
_gaq.push(['_setCustomVar', 1, 'customVar1', 'cv1', 1]);
_gaq.push(['second._setAccount', 'UA-XXXXXXX-2']);
_gaq.push(['second._trackPageview']);
_gaq.push(['second._setCustomVar', 2, 'customVar2', 'cv2', 1]);
Run Code Online (Sandbox Code Playgroud)
它正在运行,但我在两个帐户中都有自定义变量.我真正需要的是仅为UA-XXXXXXX-1帐户跟踪customVar1,仅为UA-XXXXXXX-2帐户跟踪customVar2.任何想法如何实现这一点?
首先,_setCustomVar必须来之前_trackPageview.
发生这种情况是因为用户级自定义变量存储在cookie中.由于您的跟踪器共享相同的cookie,因此第二个跟踪器将与第一个跟踪器上设置的变量一起发送.
你有3个选择.
这里的正确途径是使用Universal Analytics.Classic中没有正式支持多跟踪,因为它可能会出现错误,正如您可能已经注意到的那样.事情很容易打破.
在Universal上,所有自定义维度都在服务器端进行评估,因此支持此设置.自定义维度的Cookie中不存储任何数据.
例如:如果您通过Admin界面配置了dimension1 on UA-XXXXXXX-1和dimension2 on UA-XXXXXXX-2.
ga('create', 'UA-XXXXXXX-1', 'auto');
ga('send', 'pageview', {
'dimension1': 'cv1'
});
ga('create', 'UA-XXXXXXX-2', 'auto', {'name': 'newTracker'});
ga('newTracker.send', 'pageview', {
'dimension2': 'cv2'
});
Run Code Online (Sandbox Code Playgroud)
更多信息:
如果您最终无法迁移到Universal Analytics并希望继续使用Classic,则只需使用会话级自定义变量即可解决此问题.要使其工作,您只需要更改自定义Var的范围,如下所示(从1到2).
与User scoped Custom Vars不同,Session Scoped CV不会存储在cookie中.所以你会解决这个问题.缺点是该值仅对该会话有效,而不是来自同一用户的未来会话.
_gaq.push(['_setAccount', 'UA-XXXXXXX-1']);
_gaq.push(['_setCustomVar', 1, 'customVar1', 'cv1', 2]);
_gaq.push(['_trackPageview']);
_gaq.push(['second._setAccount', 'UA-XXXXXXX-2']);
_gaq.push(['second._setCustomVar', 2, 'customVar2', 'cv2', 2]);
_gaq.push(['second._trackPageview']);
Run Code Online (Sandbox Code Playgroud)
您可以配置GA以创建2组cookie,每个跟踪器一个在根域,一个在子域.
如果您的网站是:http://www.example.net设置您的跟踪器,如下所示:
_gaq.push(['_setAccount', 'UA-XXXXXXX-1']);
_gaq.push(['_setDomainName', 'example.net']);
_gaq.push(['_setCustomVar', 1, 'customVar1', 'cv1', 1]);
_gaq.push(['_trackPageview']);
_gaq.push(['second._setAccount', 'UA-XXXXXXX-2']);
_gaq.push(['second._setDomainName', 'www.example.net']);
_gaq.push(['second._setCustomVar', 2, 'customVar2', 'cv2', 1]);
_gaq.push(['second._trackPageview']);
Run Code Online (Sandbox Code Playgroud)
这必须在您网站的所有页面中完成.不仅是这一个.这将确保每个跟踪器使用它的隔离cookie集,并且customVars不会从一个到另一个泄漏.
请注意,如果您的网站无需访问www..例如:http://example.net/这将失败,没有解决方法.您无法在同一域和路径中创建两组具有相同名称的Cookie.你不能.
此外,如果您使用_gaq.push(['_setDomainName', 'none']);或_gaq.push(['_setAllowHash', false]);,上述技巧将无法工作,cookie将发生冲突.你的数据会很奇怪.只是不要这样做.你被警告过了.
我无法强调这是在没有保证的情况下提供的,如果你的数据打破它就在你身上.多个跟踪器很棘手,这就是它从未得到官方支持的原因.
更多信息:
| 归档时间: |
|
| 查看次数: |
1202 次 |
| 最近记录: |