• Piwik API初探(一)


         转自http://www.chenwg.com/%E5%85%B6%E4%BB%96/piwik-api%E5%88%9D%E6%8E%A2%EF%BC%88%E4%B8%80%EF%BC%89 具体可以到http://www.chenwg.com 查看。

         一个网站的用户访问数据对于网站运营人员来说是非常重要的,如用户是怎样到我的网站的,用户在网站浏览了什么内容,停留了多长时间等数据,很多网站都会在网站上用上统计的功能,不少站长使用百度统计,站长统计,使用这些统计功能其实很简单,注册百度统计,然后添加网站,通过下载一个文件放到网站根目录,进行网站认证,也就是认证这个网站是你的,接着将一段JS代码放在网站模板footer前,这样用户访问你的网站的相关数据,就可以在百度统计后台看到了,站长统计也类似。

            另外有一些开源的网站流量统计的框架,如Piwik,Piwik是基于PHP+MySQL的,如果要使用Piwik,得自己搭建服务器,所以要有支持PHP+MySQL环境的服务器,安装很简单的,类似Joomla!、Wordpress。

            如果你觉得Piwik还不能满足你的要求的话,你可以开发各种插件,现在很多cms也开发了支持Piwik的插件,Piwik有一个优点,就是有非常丰富的API,现在来看看API。

            Piwik同样也是支持REST api,相信了解新浪微博开放平台,twitter开放平台的朋友对REST api是非常熟悉的,如果想了解下REST api,下面有两篇文章是比较好的,可以去看看,不过可能要FQ。

    http://wangchao0721.wordpress.com/2011/05/04/rest%E5%AD%A6%E4%B9%A0%E5%AE%9E%E8%B7%B5-%E7%AC%AC%E4%B8%80%E7%AF%87%EF%BC%9A%E8%A7%A3%E6%9E%90rest/

           在Piwik的后台点击API,会有API的快速说明文件,有个使用者验证,会有一个&token_auth的字符串,这个token_auth和你的账号和密码一样重要,千万不要公开,切记。

           找到“Module Actions”,这里有很多API可以调用的,支持XML,Json,Tsv等格式,在这里我使用Json格式的,体积小,结构清晰。随便找个,如getPageTitles,点击Json格式的,如下图:

         

    打开之后发现链接如下:

    http://piwik.chenwg.com/index.php?module=API&method=Actions.getPageTitles&idSite=4&period=day&date=2012-11-22&format=JSON&token_auth=*********************   (token_auth比较重要,我没有列出来,用*号表示了。)

    页面显示出一堆json格式的数据,将这些json格式的数据格式化一下,如下:

    [
        {
            "label": " 寒星晓月",
            "nb_visits": 3,
            "nb_uniq_visitors": 3,
            "nb_hits": 3,
            "sum_time_spent": 0,
            "entry_nb_uniq_visitors": "3",
            "entry_nb_visits": "3",
            "entry_nb_actions": "3",
            "entry_sum_visit_length": "0",
            "entry_bounce_count": "3",
            "exit_nb_uniq_visitors": "3",
            "exit_nb_visits": "3",
            "avg_time_on_page": 0,
            "bounce_rate": "100%",
            "exit_rate": "100%"
        },
        {
            "label": " 最新hosts文件下载(2012.4.15) | 寒星晓月",
            "nb_visits": 3,
            "nb_uniq_visitors": 3,
            "nb_hits": 3,
            "sum_time_spent": 52,
            "entry_nb_uniq_visitors": "3",
            "entry_nb_visits": "3",
            "entry_nb_actions": "4",
            "entry_sum_visit_length": "53",
            "entry_bounce_count": "2",
            "exit_nb_uniq_visitors": "3",
            "exit_nb_visits": "3",
            "avg_time_on_page": 17,
            "bounce_rate": "67%",
            "exit_rate": "100%"
        },
        {
            "label": " Android欢迎界面淡入淡出效果 | 寒星晓月",
            "nb_visits": 1,
            "nb_uniq_visitors": 1,
            "nb_hits": 2,
            "sum_time_spent": 16,
            "entry_nb_uniq_visitors": "1",
            "entry_nb_visits": "1",
            "entry_nb_actions": "3",
            "entry_sum_visit_length": "17",
            "entry_bounce_count": "0",
            "exit_nb_uniq_visitors": "1",
            "exit_nb_visits": "1",
            "avg_time_on_page": 16,
            "bounce_rate": "0%",
            "exit_rate": "100%"
        },
        {
            "label": " extjs 常用基本控件小结 | 寒星晓月",
            "nb_visits": 1,
            "nb_uniq_visitors": 1,
            "nb_hits": 1,
            "sum_time_spent": 0,
            "entry_nb_uniq_visitors": "1",
            "entry_nb_visits": "1",
            "entry_nb_actions": "1",
            "entry_sum_visit_length": "0",
            "entry_bounce_count": "1",
            "exit_nb_uniq_visitors": "1",
            "exit_nb_visits": "1",
            "avg_time_on_page": 0,
            "bounce_rate": "100%",
            "exit_rate": "100%"
        }
    ]

    现在来讲讲链接参数的表示的是什么含义。

    http://piwik.chenwg.com/index.php?module=API  这块我就不说了,

    1. method表示的是调用哪个函数;

    2. idSite就是在piwik后台添加网站时自动添加的,如下图:

       我们可以设置idSite=1,也可以设置idSite=1,2,3,4,…… ,这样可以显示id为1,2,3,4等网站的相关信息的,也可以设置idSite=all,这样就显示piwik所监控的所有网站。

    3. period的参数可以设置为'day','week','month','year','range',period与date是一对好基友,他们必须在一起出现的,比如设置period=day,则date=2012-11-23这样的格式,既YYYY-MM-DD,如果period=range,则date=2012-11-20,2012-11-23,既是一个时间段YYYY-MM-DD,YYYY-MM-DD,如果period=month,则date=2012-11,也就是YYYY-MM这样的格式。

    4. format的参数,猜猜就知道了,返回的数据的类型,支持xml,json,csv等格式的,喜欢什么格式就设置什么格式。

  • 相关阅读:
    。。。Hibernate 查询数据 事务管理。。。
    如何在easyui datagrid 中显示外键的值
    easyui datagrid 中序列化后的日期格式化
    使用Log4net把日志写入到SqlServer数据库
    在ALV点击Key值调用TCode,跳过初始屏幕
    JAVA环境变量设置
    在Jsp中调用静态资源,路径配置问题
    eclipse下项目复制改名注意事项
    HTML5与CSS3基础教程第八版学习笔记16-21章
    HTML5与CSS3基础教程第八版学习笔记11~15章
  • 原文地址:https://www.cnblogs.com/hxxy2003/p/2794248.html
Copyright © 2020-2023  润新知