和网站类似,我们也希望知道桌面客户端程序的访问情况,这儿的桌面客户端开发语言可能是:C++, Delphi,.net。
假设有一个视频下载及播放的客户端程序,我们需要知道,每天的登录次数,下载次数,播放次数,还想知道下载、播放最多的视频名称列表。
简单的做法是,登录时,往服务器端提交一个数据包,参数为:用户名,下载时,提交:视频名称,用户名。服务器端记录提交的数据,并编写相应的后台报表,用来展现访问情况,附加的,还要做权限管理,报表导出,邮件通知等功能,工作量可真不小。
如果把客户端程序的操作看着页面访问,那么对应的页面的标题和地址会是这样:
用户登录 – tom (/login/tom)
视频下载 – 海绵宝宝第一集(/download/海绵宝宝第一集/tom)
视频播放 -海绵宝宝第一集(/play/海绵宝宝第一集/tom)
基本的数据提交到GA后,就可以按标题和路径,筛选登录的次数,下载,播放最多的视频名称了,权限管理,图表展现也不在话下。
这时大家要问了,客户端程序模拟ga.js数据提交可不是一件简单的事情,而且每种开发语言还得写一遍,工作量一点都不小啊。
其实有一种简单的方法,就是客户端程序做一个隐藏的窗口,在这个隐藏的窗口嵌一个浏览器,windows下就是IE浏览器了,当有操作发生时,这儿的隐藏浏览器转到响应的页面地址,就像这样:
http://www.mysite.com/track.html?action=login&username=tom&title=用户登录 – tom
http://www.mysite.com/track. html?action=download&username=tom&video=海绵宝宝第一集&title=视频下载 – 海绵宝宝第一集
http://www.mysite.com/track. html?action=play&username=tom&video=海绵宝宝第一集&title=视频播放 – 海绵宝宝第一集
track.html页面的代码:
<script type=”text/javascript” src=”js/jquery-1.4.1.min.js”></script>
<script type=”text/javascript” src=”js/jquery.url.js”></script>
<script type=”text/javascript”>
var p = $.url().param();
var action = p.action;
var path = “”;
if (action) {
switch (action) {
case “login”:
path = “/login/” + p.username;
break;
case “download”:
path = “/download/” + p.video + “/” + p.username;
break;
case “play”:
path = “/play/” + p.video + “/” + p.username;
break;
}
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-1']);
_gaq.push(
function () { document.title = p.title;},
['_trackPageview', path]
);
}
</script>
<script type=”text/javascript” src=”http://www.google-analytics.com/ga.js”></script>
这儿用到了jquery.url.js用来获取url中的参数,下载地址在:https://github.com/allmarkedup/jQuery-URL-Parser
GA的账号添加和报表配置就不详解了,本文主要是给大家一个思路,实际使用时,还需要注意以下的一些问题:
1 客户端程序的Session过期时间,网页是半小时,客户端可以长一些,如2小时:_gaq.push(['_setSessionCookieTimeout', 120 * 60 * 1000]);
2 客户端程序需要关注程序版本,这儿的程序版本,可以通过用户变量设置:_gaq.push(['_setCustomVar', 2, 'ver', p.ver, 2]);
3 客户端程序需要知道:操作系统,屏幕尺寸等信息,这部分直接读GA报表里的:Browser & OS 即可,不需要自己做
4 除了TrackPageview方式,其实用事件来记录客户端的操作,也蛮方便的,方便筛选
5 隐藏的浏览器,传递参数时,要有个random参数,保证浏览器强制刷新
小结:
GA统计功能强大,定制方便,如果没有太特别的需求,桌面客户端用GA统计不仅代码修改量小,而且定制性也很好,值得一试。