Google Analytics中的自定义变量

在GA的使用过程中,大部分情况下我们都只会使用标准的GATC,补充一些自然搜索引擎的识别,在后台加上各种过滤器来呈现不同的内容。这些内容固然重要,但是如果要进一步细分人群或者标签化一类人属性的话,光靠这些代码还是不够的。这个时候我们要用到GA的另一个强大的功能——自定义变量。

GA分为普通版和收费版,收费版是15W/Y的收费,相比Omniture要便宜太多。而收费版和免费版的区别就只有两个:1、数据是否抽样,2、自定义变量的个数(免费版5个,收费版50个)。从这里我们就可以看出自定义变量的重要性,Google在这点上从来不含糊。那么GA中的自定义变量都能做什么呢?下面来简单说说:

一、级别

自定义变量分为三种级别:访客级(Visitor)会话级(Session)页面级(Page)

访客级:是最高的级别,也就是说一个访客(正确的说是一个独立的浏览器)在你网站上的所有行为都会与这个变量绑定。不论你有多少次访问,都可以被记录到。(前提是不删除cookie)

会话级:也就是访次(Visits)级别,就是贯穿你一次访问的各种行为都会与之相对应起来。

页面级:简单的来说只会随你下一个_utm.gif请求进行记录,待到下一个请求时这个变量已经失效。

二、用途

自定义变量的好处在于,他可以用来代表你网站中任意指定的维度,并不局限于GA本身所收集的来源、媒介、关键词、地域、浏览器信息等等。比如用户本身的属性,性别?年龄?身高?学历?是否会员?会员等级?是否登陆?事实上,这些都是可以做到的。

以前你只知道一群人在网站上干了什么,或者一个来源的人在网站上干了什么,但是现在你可以知道哪一类人在你网站上干了什么,哪一类是你最应该关注的,他们关注的是什么,针对这一类人对症下药,提升你网站的价值。因为根据”二八定律“,80%的网站收入来源于20%的那部分访客。从战略意义上来说,关注那20%的用户的意义远大于剩余的80%。毕业之前我面试了一家网游公司,他最后给我的题目是:“如果你发现一个大手笔的RMB玩家作弊,引起公愤,你会怎么处理?”这个问题就正好说的是这个道理,因为这个游戏主要是靠这样的玩家养活的,丢了他们就会少了许多收入,然而如果不处分的话对其他玩家没有交代影响游戏的声誉。最后我的回答是对这个玩家作弊的来的物品道具清空并罚款,不删号,在公告栏公示处理结果以儆效尤。这个结果当时面试官比较满意,这是一个真实的案例,最后他们大概也是这么处理的。

对于收集这类信息,如果你使用的是免费版,那么你首先就要考虑的是变量个数的局限性,因为你只有5个,如何合理的安排使用是很重要的。所以你要选择对你来说最重要的信息,Google推荐的做法是在这之前制定一个变量矩阵,做出合理的规划。

三、代码格式

设置自定义变量的代码从来都不是独自出现的,他通常都会出现在_trackPageView或者_trackEvent事件的前面。这是因为他这个语句不会发送utm.gif请求,前面说过了,这个图片请求后面添加了各种参数是用来给GA服务器传输数据的,没有请求服务器也就不会记录到数据。跟它一样命运的还有_setAccount,_setDomainName,_setCookiePath等等二线队员。

一条正确的设定自定义变量的语句通常是如下格式的:

__gaq.push([‘setCustomVar’,1,’Gender‘,’Male‘,1]);

其中第一个参数指的是变量的位置或者编号,一共有5个变量,它的范围就是1-5

第二个参数是变量名,示例中我用的是’Gender’,也就是性别

第三个参数就好理解了,’Male’也就是Gender的值。

第四个参数也是数字”1“,但这个1和之前的就完全不同了,它指的是这个自定义变量的级别(1为访客级,2为会话级,3为页面级)

这一个语句也是Javascript的一部分,可以直接加在<script></script>这一对标签中间,也可以加在页面的交互事件上,比如说我点击一个性别选择框,当点击到“男”时,通过onclick事件触发这一条代码,但是一定要记得,后面一定要跟上相应的_trackPageView或者_trackEvent语句确保请求触发。

四、注意事项

GA的帮助中心给了我们几条建议,我再后面做出了相应的补充:

1、Do not use duplicate key names across slots.(不要在各个级别变量之间重复使用变量名)。

2、Call the _setCustomVar() function when it can be set prior to a pageview or event GIF request.(一定要保证在自定义变量语句后面有能触发gif请求的页面或事件请求)

3、Use a slot matrix to track large numbers of custom variables.(前面提到过,使用一个自定义变量矩阵规划你变量的使用)

如果你使用不同级别的同一变量(同一位置),那么要考虑到不同级别变量的优先级,访客级>会话级>页面级,**优先级高的变量会重写掉优先级低的变量,导致优先级低的变量数据丢失。**

4、Consider using Event Tracking for certain applications, rather than custom variables.(在可以使用Event tracking的情况下,最好不要使用自定义变量)

如果只是做计数用途的话,Event tracking 要更加可靠和准确,而且不会有冲突的问题。

5、Don’t use session-level variables to track behavior you can track with page-level variables.(能用页面级别的自定义变量做到的事情就不要使用会话级别)