1. 原理分析
首先,用户的行为会触发浏览器对被统计页面的一个http请求,比如打开某网页。当网页被打开,页面中的埋点javascript代码会被执行。
埋点是指:在网页中预先加入小段javascript代码,这个代码片段一般会动态创建一个script标签,并将src属性指向一个单独的js文件,此时这个单独的js文件(图中绿色节点)会被浏览器请求到并执行,这个js往往就是真正的数据收集脚本。
数据收集完成后,js会请求一个后端的数据收集脚本(图中的backend),这个脚本一般是一个伪装成图片的动态脚本程序,js会将收集到的数据通过http参数的方式传递给后端脚本,后端脚本解析参数并按固定格式记录到访问日志,同时可能会在http响应中给客户端种植一些用于追踪的cookie。
2. 设计实现
根据原理分析并结合Google Analytics,想搭建一个自定义日志数据采集系统,要做以下几件事:
2.1. 确定收集信息
名称 |
途径 |
备注 |
访问时间 |
web server |
Nginx $msec |
IP |
web server |
Nginx $remote_addr |
域名 |
javascript |
document.domain |
URL |
javascript |
document.URL |
页面标题 |
javascript |
document.title |
分辨率 |
javascript |
window.screen.height & width |
颜色深度 |
javascript |
window.screen.colorDepth |
Referrer |
javascript |
document.referrer |
浏览客户端 |
web server |
Nginx $http_user_agent |
客户端语言 |
javascript |
navigator.language |
访客标识 |
cookie |
Nginx $http_cookie |
网站标识 |
javascript |
自定义对象 |
状态码 |
web server |
Nginx $status |
发送内容量 |
web server |
Nginx $body_bytes_sent |
2.2. 确定埋点代码
埋点,是网站分析的一种常用的数据采集方法。核心就是在需要进行数据采集的关键点植入统计代码,进行数据的采集。比如以谷歌分析原型来说,需要在页面中插入一段它提供的javascript片段,这个片段往往被称为埋点代码。
[AppleScript] 纯文本查看 复制代码
|