4

I'm trying to migrate from Google old Analytics to Universal Analytics. I have code below and from universal - developers guide I couldn't find solution.

Inside my analytics code I had these lines. Part 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);
    })();

Also inside my some other script I have this code snippet. Part 2:

if (typeof _gaq !== "undefined" && _gaq !== null) {
    _gaq.push(['_trackPageview', '/dosomework']);
}

How can I convert "gaq.push"s inside 2 parts and add to my universal analytics code ?

4

1 回答 1

25

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

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

Google 目前建议在您当前的 ga.js 代码之外设置 analytics.js代码。一旦您对基础数据在两者之间排列感到满意,您可以将这两个版本保留在您的页面上,或者决定删除旧 ga.js 代码的日期。旧配置文件中的历史数据仍会存在,但不会与新的网络媒体资源相关联。我不知道谷歌最终是否会为现有的基于 ga.js 的网络资产提供“升级”或“转换”功能;到目前为止,我还没有看到任何关于他们是否/何时会提供这个的消息。

继续使用 Universal Analytics (analytics.js) 代码...

Universal Analytics 不使用该.push语法。相反,它有一个ga()需要将参数传递给它的函数。第一个参数是“命令”参数,附加参数用于根据命令传递附加设置、值等。

  • 现在使用“create”命令设置 GA 帐户
  • 现在可以使用“发送”命令跟踪页面视图
  • 设置自定义变量*现在可以作为“发送”命令中的一个参数(仅在该“发送”命令上弹出它),或使用“设置”命令(用于将其设置为与所有“发送”一起弹出)在页面上执行的命令)..但是关于这个......

自定义变量不再存在

他们确实做到了,但是它们的实施方式不同。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');
}

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

于 2013-04-28T00:52:27.977 回答