桌面客户端程序的GA统计

和网站类似,我们也希望知道桌面客户端程序的访问情况,这儿的桌面客户端开发语言可能是: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统计不仅代码修改量小,而且定制性也很好,值得一试。

 

 

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>