自定义变量 (Custom Variables)是Google Analytics 2009年10月推出的一个功能,可以用来对网站用户细分,实现的功能与自定义访客群体(Custom Visitor Segments)差不多,可以算是后者的升级版。这两天正好用到这个功能,而网上关于它的应用案例又少得可怜,这里就介绍一下具体应用过程,如有不同意见,欢迎拍砖。
和Custom Visitor Segments需要使用_setVar()方法类似,Custom Variables也是通过_setCustomVar()方法来实现应用的,下面我们对这个方法做个简要说明:
_setCustomVar(index, name, value, opt_scope)
- index:变量序号,可选范围1~5
- name:自定义变量名,GA自定义变量报告中看到最顶级报告类目就是变量名
- value:为自定义变量赋值,和前面的自定义变量名搭配使用,点击自定义变量报告名后的下一级数据就是变量值,通常,一个自定义变量会有两个或更多的值,比如,一个自定义变量name是gender,那value就有male和female两个可能的值
- opt_scope:自定义变量的范围,可选范围是1~3,1 (visitor级别) ,2(session级别),3(page级别)。如果留空,默认值是3。
这里不再做更多说明,详情请参考GA官方说明,下面我们看应用案例。
应用一:某电子商务网站监测 A类商品页面(包括列表页和详情页)的人均访问页面数
为什么要使用自定义变量(Custom Variables)实现?
GA的默认报告中是不提供A类商品页面的Pages/Visit的,在Custom Variables出现之前,我能想到的只有一个办法,通过高级群体或过滤器统计该群体的Visits,然后再手动查询A类商品页面的PageViews,相除计算得出结果,比较麻烦。
具体实现方法
1、部署代码
A类商品的所有列表页中部署代码 pageTracker._setCustomVar(1, “Page-Type”, “listpage“, 3);
A类商品的所有详情页中相关代码 pageTracker._setCustomVar(1, “Page-Type”, “detail“, 3);
简要说明:
- 自定义变量序号为1
- 自定义变量命名为Page-Type
- 列表页自定义变量赋值Page- Type=listpage,详情页变量赋值Page-Type=detail
- 该自定义变量应用层级是Page
完整代码传统版:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-91xxxxxx-1");
pageTracker._setCustomVar(1, "Page-Type", "detail", 3);
pageTracker._trackPageview();
} catch(e){;};
</script>
完整代码异步跟踪版:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-91xxxxxx-1']);
_gaq.push(['_setCustomVar', 1, 'Page-Type', 'detail',3]);
_gaq.push(['_trackPageview']);
(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);
})();
</script>
2、报告结果
报告查看位置 Visitors——Custom Variables

(图一、A类商品页面总数据)
其中Hits数就是A类商品页面总的点击次数,我们选择的自定义变量应用范围是page level,所以这里的数据实际上就是Pageviews,后面的Pages/Visit就是我们要的数据了。
第一目标已达成,我们再点击进去,看一下A类商品列表页和详情页数据的具体数据.
3、列表页与详情页间的访问转化
可能细心的网友已经看到图一的Visits是40,091,而图二的Visits是52,111,这两者间的差值就是同时访问了列表页和详情页的Visits 数,这个数值可以用来衡量列表页和详情页间的引导是否顺畅友好。如果想进一步了解这类用户行为,可以使用高级群体细分,详细分析这部分用户的行为。
(图三、同时访问了列表页和详情页的用户-高级群体设置)
应用二:某电子商务网站A类商品列表页的翻页情况统计
1、部署代码
假设A类商品有500件,列表页每页默认显示50件商品,在列表页中部署相应的代码
第1页:pageTracker._setCustomVar(2, “Page-Flip”, “1″, 3);
第2页:pageTracker._setCustomVar(2, “Page-Flip”, “2″, 3);
………
第50页: pageTracker._setCustomVar(2, “Page-Flip”, “50″, 3);
异步跟踪代码格式参考应用一
2、报告分析
访问列表页的用户每次访问的平均翻页数是3.11
列表页具体翻页访问数分布
注意事项:
- 自定义变量名和变量值的长度都不能超过64 bytes
- 变量名不能重复
- _setCustomVar()需要放置在_trackPageview()前面
- 报告延时很严重,今天配置好,数据要两天后才能看到
- 自定义变量名和值尽量不要使用中文,否则显示的是编码后的形式,报告易读性会比较差。




自变量定义的用户 cookie有效期是多久呢?
当次访问结束后,以后的访问都是带标记的吗?
[回复]
基于Visitor-level的变量的Cookie有效期是两年
[回复]
自定义变量配置好了,变量能马上显示在报告中吗(不是数据)?
变量名是随便取的吗?
谢谢!
[回复]
这个倒没有注意,但个人感觉应该自定义变量名不会马上显示在报告中,就好象页面不产生流量就不会显示在报告中是一个道理。自定义变量不同于自定义报告和高级群体,后者是对已经形成的报告进行数据展示形式和数据展示范围的操作,所以可以马上看到结果, 而自定义变量是在进行原始数据的搜集。
自定义变量名是可以随意设置的,但目前中文显示会有问题,是没有解码的形式,会影响报告的易读性,建议使用字母和数字来命名。
[回复]
如果我想设一个自定义变量跟踪user id, 应该怎么设?
谢谢!
[回复]
传统版本:pageTracker._setCustomVar(1, “Userid”, “提取用户id”, 1);
异步版本:_gaq.push(['_setCustomVar', 1, 'Userid', '提取用户id',1]);
可以在用户的登录成功页加入上面的自定义变量相关代码,这样就可以跟踪每个登录用户的行为了。
[回复]
谢谢。不过我加的自定义变量没显示出来,不知道要多就才能看到
[回复]
呵呵,有问题加我QQ:7214005,这快成版聊了。
[回复]
好的,我加你QQ了。我加了三个自定义变量,前两个都显示出来了,但是userid那个还是显示不出来,是要加在_gaq.push(['_trackPageview']);的前面还是后面?
我是这样用的: _gaq.push(['_setCustomVar', 3, 'userid', '', 1]);
[回复]
sorry, 是_gaq.push(['_setCustomVar', 1, 'userid', '提取用户id',1]);
[回复]
如何 将 用户ID或者用户名传递到 _setCustomVar??
这个必须求助于网站程序员了吧,GA不会自动提取用户ID传送到 _setCustomVar吧
[回复]
admin 回复:
三月 12th, 2011 at 7:59 上午
直接把 _setCustomVar 对应的值写成动态的参数。这个确实需要求助于程序员提供支持了
[回复]