piwik API的初级使用

Server 林涛 18207℃ 0评论

一个网站的用户访问数据对于网站运营人员来说是非常重要的,如用户是怎样到我的网站的,用户在网站浏览了什么内容,停留了多长时间等数据,很多网站都会在网站上用上统计的功能,不少站长使用百度统计,站长统计,使用这些统计功能其实很简单,注册百度统计,然后添加网站,通过下载一个文件放到网站根目录,进行网站认证,也就是认证这个网站是你的,接着将一段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,下面有两篇文章是比较好的,可以去看看,不过可能要翻墙。


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/

API的使用及参数介绍:

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

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

222 Piwik API初探(一)

打开之后发现链接如下:

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后台添加网站时自动添加的,如下图:

1 Piwik API初探(一)

我们可以设置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等格式的,喜欢什么格式就设置什么格式。

模块监控:

如何监控某一个功能模块的的问题,因为要对这个功能模块进行数据分析,看看有多少人在使用这个功能模块,Piwik可以对一个网站所有的页面进行数据统计分析,同时它还有一个功能,就是与电子商务有关的,也就是Ecommerce Analytics,它可以对你的购物车,产品等进行分析,比如哪个产品是最容易被用户抛弃的,哪个分类最受欢迎,哪个产品最受欢迎,总转换率,转换数等,具体的可以在piwik的后台去看看。

先登录piwik后台,对监控的网站启用Ecommerce Analytics这个功能。

2 Piwik API初探(二)

然后再建立跟踪的目标,如下:

3 Piwik API初探(二)

这样就可以了,通过Piwik API可以获得这些数据的,具体可以查看下官网,所以在这里进行了点投机取巧,只要那个功能模块的url地址不变,我们便可通过这个方法去监控那个功能模块的使用的一些数据。

中文显示错误的解决:

如获取当前访问网站的浏览器的统计、当月的访问次数、本星期的访问次数等,使用这些API的时候,也就是生成一张图,有曲线图、柱状图、饼图等。

但是出现了一个问题,就是中文文字都出不来,如下图:

4 Piwik API初探(三)

5 Piwik API初探(三)

6 Piwik API初探(三)

后来查了一下,发现原来是unicode字符,按以下的方法可以解决这个问题的。

1.下载unifont.ttf,下载地址为 unifont.ttf ;

2.将下载好的unifont.tff.zip解压;

3.将unifont.tff上传到你的空间,既piwik/plugins/ImageGraph/fonts/unifont.ttf。

这样就可以解决了。

7 Piwik API初探(三)

生成图表:

通过使用Piwik的ImageGraph.get API,你可以生成很漂亮的PNG图片的数据统计报告,它支持的图形类型有时序图、2D/3D饼状图、直方图( 直方 图又分为水平 直方 图和垂直 直方图)。

1. 过去三十天访问的统计

URL = index.php?   module=API&method=ImageGraph.get&idSite=3&apiModule=VisitsSummary&

apiAction=get&token_auth=***********&graphType=evolution&period=day&date=previous30

&width=500&height=250

使用这条URL访问,得到的图片如下:

8 Piwik API初探(四)

graphType有四种参数可写,evolution(代表的是时序图),horizontalBar(代表的是水平直方图),verticalBar(代表的是垂直直方图),pie(代表的是2D饼状图)

将graphType的参数改成其他几个,得到下面的:

9 Piwik API初探(四)

10 Piwik API初探(四)

11 Piwik API初探(四)

有个date=previous30,previous30表示从昨天起的前30天的统计的数据,这个30也可以改为其他数据,10,20等。如果要查某一天到某一天的数据,如2012年11月25日到2012年11月28日的数据,可以设置date=2012-11-25,2012-11-28即可,如下图所示:

12 Piwik API初探(四)

所以两个时间之间的访问统计可以使用这个API来实现,其他图形的我就不弄了,反正改个参数就行了。

      2.当月访客访问所用的浏览器的统计

      URL = index.php?module=API&method=ImageGraph.get&idSite=3&apiModule=UserSettings&

apiAction=getBrowser&token_auth=****************&graphType=horizontalBar&period=month

&date=today&width=500&height=250

先在浏览器上试下看返回什么数据,如图:

13 Piwik API初探(四)

哈哈,果然是很多IT人访问我的网站的。看下2D饼状图的效果吧,如下:

14 Piwik API初探(四)

如果参数设置为period=day&date=today,显示的则是今天的访问的浏览器的统计数据;如果参数设置为period=day&date=2012-11-23,2012-11-28,显示的则是23到28号的数据,如下:

15 Piwik API初探(四)

如果参数设置为period=month&date=2012-11,显示的就是11月的数据了;如果设置为period=week&date=today,显示的则是这周的。

      3.本月访问来源的国家

       URL=index.php?module=API&method=ImageGraph.get&idSite=2&apiModule=UserCountry&apiAction=

\getCountry&token_auth=******************&graphType=horizontalBar&period=month&date=today

&width=500&height=250

16 Piwik API初探(四)

不再讲period=month&date=today这几个参数了,来讲讲apiModule=UserCountry&apiAction=getCountry这两个参数,apiModule=UserCountry表示的是UserCountry这个模板,这个模块里有好几个方法,如getCountry、getContinent、getRegion、getCity、getNumberOfDistinctCountries,通过这些方法名可以猜得到是什么意思了,第一个方法是获得访问来源的国家,第二个方法是获得访问来源的洲,第三个是获得访问来源的省份,第四个是获得访问来源的城市,第五个是获得来自不同国家的数目。以下是是使用各个方法所得到的图片:

17 Piwik API初探(四)

18 Piwik API初探(四)

19 Piwik API初探(四)

4.类似可以可以知道UserSettings模块,有getResolution、getConfiguration、getOS、getOSFamily、getMobileVsDesktop、getBrowserVersion、getBrowser、getBrowserType、getWideScreen、getPlugin等方法的

如需转载请注明: 转载自26点的博客

本文链接地址: piwik API的初级使用

转载请注明:26点的博客 » piwik API的初级使用

喜欢 (1)
发表我的评论
取消评论

表情
(6)个小伙伴在吐槽
  1. token_auth 有个有效期是多少,可以设置么,在哪能设置呀
    匿名2022-01-24 16:34 回复
  2. 你好,我想问一下, piwik的数据怎么发给自己的网站?
    匿名2018-01-03 18:34 回复
  3. Kelvin杨鸿杰2016-07-29 17:58 回复
  4. Kelvin杨鸿杰2016-07-29 17:56 回复