文章目录[隐藏]
WebServer日志、js埋点是常用的站点流量统计方案,本文简要分析其优劣,并设想一种基于实际页面请求来存储并展现访问日志的方案。
比较
WebServer日志
Apache、Nginx等的日志。
优点
- 全部记录,包括用户访问和爬虫
- 本地存储,信息安全
- 可自定义字段和格式,信息全面
- 除了访问日志,还有错误日志,可以用于排查程序错误,提升健壮性
缺点
- 格式相对不易读,需要分析软件处理
- 页面请求与静态文件请求混杂
- 可能包含大量非搜索引擎爬虫的访问,例如攻击、暴力破解等访问
- 不能/难以基于会话进行分析,了解诸如用户的停留时间、跳出率、特征等信息
JS埋点
通常使用第三方提供的服务,在模板头部或者足部加入带站点ID的脚本即可。
优点
- 方便易用
- 数据展现形象直观
- 数据记录/存储的周期长,容易进行时段比对分析,以及长期趋势分析
- 提供会话层面的分析数据,例如停留时间、跳出率等
- 对用户的特征刻画比较准确,如所在地、年龄等
缺点
- 信息安全、站点隐私
- 看不到非浏览器加载的请求、禁用js的请求、被用户浏览器插件/安全策略屏蔽掉的请求
- 通常有使用限制,例如不能定期发送邮件报告等,只能登陆到其站点上才能看数据
- 页面相对不够简洁,站点访问过程中增加了很多HTTP请求,可能影响用户体验
自行设计存储、分析方案
简单说,就是每处理一个页面请求,就在后台记录一条包含ip、ua、referer等字段的数据,然后用于分析。大公司的系统应该都有类似的、更复杂的设计。
优点
- 信息全面,不会遗漏关心的数据,且只包含通常关心的页面浏览数据
- 数据安全
- 容易定制,拓展伸缩性强,可满足各类个性化需求,可灵活使用数据,如每日自动发报告邮件等
缺点
- 技术门槛高,开发、维护等
- 后台增加了处理过程,至少一条insert,略微降低响应速度
- 难以在会话层面进行分析
- 使用的IP数据库等没有专业厂商的准确
设计与展示
以下是正在设计中的一个方案:
数据存储:
一些分析表格:
-- EOF --
本文最后修改于6年前 (2019-05-17)