博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
piwik 案例介绍
阅读量:7231 次
发布时间:2019-06-29

本文共 1708 字,大约阅读时间需要 5 分钟。

hot3.png

1,在应用技术方面:分析技术主要有:HTTP协议头信息技术,第一方COOKIE,第三方COOKIE,P3P协议COOKIE,LSO技术以及Web Beacons和javascript技术。

2,系统核心工作流程:

    1,访问者通过浏览器向用户服务器发送请求。

    2,门户服务器响应请求,返回预先设置了Piwik的跟踪代码页面,

    3,客户端浏览器执行TAG标记,向Piwik请求数据获取的js代码。

    4,Piwik服务器响应请求,返回用于收集网页,浏览器和Cookie信息的js代码。

    5,客户端浏览器执行js代码,发送相关网页被访问的行为数据给Piwik服务器。

    6,Piwik服务器产生点击流日志,保存于后台数据库中,用来日后做分析。

   Piwik收集的信息有:被系统屏蔽后的IP地址信息,访问来源链接,第一次访问网站时间,累计页面浏览数,和第几次来访问数据等。

    由于Piwik比较主用用户隐私,对IP信息进行了屏蔽,这也是Piwik的不足之处,为了精准定位访问人群,我们可以对Piwik进行二次开发。

    Piwik收集IP信息的二次开发:

        (1)Piwik后台数据库改造

            Piwik将用户的访问时间信息,访问事件和浏览器的环境等信息记录载mysql的piwik_log_visit表中,我们可以添加一个ipinfo 字段来存放用户的真实地址。

            alter table piwik_log_visit add column `ipinfo` char(20) not null default 0 after location_provider

        (2)新建一个获取IP信息的类:piwik提供插件扩展功能的方法,所有的二次开发类必须遵守次方法。

            具体步骤:

                1,在Piwik的plugins方法中建立ipinfo.php扩展类,此类继承Piwik_Plugin类,重写Piwik_Plugin中getListHooksRegistered方法,获取已经注册的Tracker.Visit.setVisitorIp钩子。注意:钩子(hook)在wordpress 中也有提到。将此钩子绑定一个方法来获取ip信息,将IP信息存入Piwik_log_visit表的ipinfo字段中。

                ipinfo.php 部分代码:

                    class ipinfo extends Piwik_Plugin {

                        public function getListHooksRegistered() {

                                //注册一个Tracker.Visit.setVisitorIp钩子类获取IP信息。

                                return array('Tracker.Visit.setVisitorIp'=>setVisitorIpAddress);

                        }

                        static public function applyIPMash($ip,$maskLength) {

                            //解开屏蔽ip信息

                             $i = Piwik_Common:strlen($ip);

                            if($maskLength > $i) {

                                $maskLength = $i;

                            }

                            while($maskLegth -- >0) {

                                    $ip[--$i] = chr(0);

                            }

                            return $ip;

                        }

                        function setVisitorIpAddress($notifiaction) {

                            //奖励与Tracker.Visit.setVisitorIp钩子的绑定方法。

                            $ip = &$notification ->getNotificationObject();

                            //得到的参数引用相关联的钩子

                            $ip = self::applyIPMask($ip,Piwik_Tracker_Config::getInstance()->Tracker['ip_address_mask_length']);

                            

                        }

                    }

                    

                

                Piwik_Plugin.php文件位置:安装目录/core/Plugin.php中。此类为抽象类,有兴趣的可以自行查阅。

                

                

            

        

转载于:https://my.oschina.net/lnmpstudy/blog/136646

你可能感兴趣的文章
谈谈前端性能优化(一)
查看>>
Spring Boot Web 应用性能优化
查看>>
关于ThinkPHP5中使用 Auth2 验证的实现
查看>>
iOS火焰动画效果、图文混排框架、StackView效果、偏好设置、底部手势等源码
查看>>
python--模块2
查看>>
Spring Cloud 配置中心内容加密
查看>>
TCP中有哪些定时器?
查看>>
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
查看>>
基于ubuntu16.04部署IBM开源区块链项目-弹珠资产管理(Marbles)
查看>>
基本算法思想:递归+分治+动态规划+贪心+回溯+分支限界
查看>>
SpringCache-Redis 注解驱动 基本例子
查看>>
Spring Boot(三)Spring Boot 和 MyBatis 整合
查看>>
超级用户黄金法则:Top 10%的用户价值是普通用户的5倍
查看>>
想学Python?这里有一个最全面的职位分析
查看>>
SpringCloud(第 056 篇)CentOS7 安装 jenkins 持续集成工具
查看>>
CentOS7 安装并使用Ovirt 4.2
查看>>
解决bash: mysql: command not found的问题
查看>>
kubernetes1.9高可用集群安装(使用kubeadm工具)
查看>>
Phoenix报错(2-1)AccessDeniedException: Insufficient permissions
查看>>
MaxCompute MapReduce
查看>>