2013-04-27 138 views
4

我试图从Google旧分析迁移到Universal Analytics。我有下面的代码,从universal - developers guide我找不到解决方案。Google Universal Analytics自定义维度和trackpageview

在我的分析代码中,我有这些行。第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']); 
} 

如何将“gaq.push”内部的两部分转换并添加到我的通用分析代码中?

回答

25

不幸的是,迁移到analytics.js并不像改变代码语法那么简单。

首先,您应该知道Universal Analytics目前处于公测阶段。目前,谷歌不提供“升级”或“转换”现有网络媒体资源以利用通用分析(analytics.js)跟踪的方式。您需要设置新的网络媒体资源(或新帐户),然后选中“通用分析”单选按钮。

Google目前建议您设置analytics.js代码以及您当前的ga.js代码。一旦你对基础数据在两者之间排队感到高兴,你可以在你的页面上保留两个版本,或者决定删除旧的ga.js代码。旧配置文件中的历史数据仍然存在,但不会绑定到新的网络媒体资源。我不知道Google是否最终会为现有基于ga.js的网络媒体资源提供“升级”或“转换”功能;到目前为止,我还没有看到他们是否会提供这方面的消息。

移动到通用Analytics(分析)(analytics.js)的代码...

通用Analytics(分析)不使用.push语法。相反,它有一个函数ga(),它需要将参数传递给它。第一个参数是“command”参数,其他参数用于根据命令传递其他设置,值等。

  • 设置GA帐户现在与“创建”命令
  • 跟踪页面视图做的是现在完成了与“发送”命令
  • 设置自定义变量*现在做的任何一'send'命令中的参数(仅在'send'命令中弹出它)或'set'命令(用于设置它在页面上执行的所有'send'命令时弹出)..但关于这个...

自定义变量不再存在

他们这样做,但他们如何实施是不同的。 Universal Analytics提供自定义维度和指标。自定义变量大多数是现在的自定义维度。主要区别在于,设置变量的名称和范围等内容现在在GA界面中完成,而不是作为函数的参数。此外,你现在有5个以上的工作。要使用此功能,请点击您所创建的网络媒体资源,你应该看到标签

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'); 
} 

旁注:不是真的与你的问题,但在你的代码中首先发送一个页面视图,然后设置自定义变量。如果您不知道,如果您在页面视图(_trackPageview)之后设置自定义变量(_setCustomVar),那么您的自定义变量将不会随该页面视图一起发送('/ tools/one'命中)。它会(假设你的第二个片段稍后弹出)与第二页面视图一起发送('/ dosomework'之一)。不知道为什么你会有两个单独的综合浏览量,或者如果你知道这个操作顺序的事情,但如果你对目前在报告中看到的东西感到满意,那么analytics.js版本的行为将是相同的。

+1

您可能想要在发送发送之前设置自定义维度 – vly 2013-04-28 09:56:28

+2

如果您已阅读我的最后一面注意事项,您会看到它是故意以这种方式完成的。 OP做到了这一点,所以我就像他那样做了,并指出了它 – 2013-04-28 15:00:39

相关问题