我正在尝试从Google旧分析迁移到Universal Analytics。我的代码如下,universal - developers guide我无法找到解决方案。
在我的分析代码中,我有这些内容。第1部分:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-123456-1']);
_gaq.push(['_trackPageview','/tools/one');
_gaq.push(['_setCustomVar', 1, 'name', 'michael', 1]);
(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);
})();
另外在我的其他脚本中,我有这段代码片段。第2部分:
if (typeof _gaq !== "undefined" && _gaq !== null) {
_gaq.push(['_trackPageview', '/dosomework']);
}
如何将2个部分中的“gaq.push”转换为我的通用分析代码?
答案 0 :(得分:25)
不幸的是,迁移到analytics.js并不像更改代码语法那么简单。
首先,您应该知道Universal Analytics目前处于公测阶段。目前,谷歌没有提供“升级”或“转换”现有网络资源的方法,以利用通用分析(analytics.js)跟踪。您需要设置新的网络媒体资源(或新帐户),然后选中“通用分析”单选按钮。
Google目前建议设置analytics.js代码以及当前的ga.js代码。一旦您对基本数据在两者之间排队感到满意,您可以在页面上保留两个版本,也可以决定删除旧的ga.js代码的日期。旧配置文件中的历史数据仍将存在,但不会绑定到新的网络媒体资源。我不知道Google最终是否会为现有的基于ga.js的网络资源提供“升级”或“转换”功能;到目前为止,我还没有看到有关他们何时/何时会提供此消息的任何消息。
转到Universal Analytics(analytics.js)代码......
Universal Analytics不使用.push
语法。相反,它有一个函数ga()
,需要将参数传递给它。第一个参数是“command”参数,其他参数用于根据命令传递其他设置,值等。
自定义变量不再存在
他们确实如此,但实施方式却有所不同。 Universal Analytics提供自定义维度和指标。自定义变量主要是Custom Dimensions现在的样子。主要区别在于,设置变量的名称和范围等内容现在在GA界面中完成,而不是作为函数的参数。此外,您现在可以使用超过5个。要进行此设置,请单击您创建的Web属性,然后您应该看到选项卡
Profiles Tracking ..Custom Definitions
点击Custom Definitions
标签,在那里设置自定义维度和指标。
现在转到页面代码
这就是您发布的代码的“等效”:
第一个片段:
<!-- Google Analytics -->
<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-123456-1');
ga('send', 'pageview', '/tools/one');
ga('set', 'dimension1', 'michael');
</script>
<!-- End Google Analytics -->
注意:如上所述,您可以在界面中设置维度的名称和范围。 'dimension1'应该更改为您创建的任何维度#。
第二个片段:
if (typeof ga == 'function') {
ga('send', 'pageview', '/dosomework');
}
旁注:与您的问题没有关系,但在您的代码中,您首先发送页面视图,然后设置自定义变量。如果您不知道,如果您在页面视图(_setCustomVar
)之后设置了自定义变量(_trackPageview
),则您的自定义变量将不会与该页面视图一起发送('/ tools /一击)。它将(假设您的第二个片段稍后被弹出)与第二页视图('/ dosomework'一个)一起发送。不确定为什么你会有两个单独的综合浏览量,或者如果你知道这个操作顺序的事情,但如果你对目前报告中的内容感到满意,那么analytics.js版本的行为方式也是一样的。