分析
谁在访问你的站点,以及在他们不再来时发出告警。它属于监控产品之内,而不是摆在监控产品旁边,因为“服务正常、状态健康,却没有人来”是一次真实的故障,而我们从网络发起的每一次检查都会报告一切正常。
统计代码
在仪表板中添加一个站点,并把它的统计代码放进每个页面,位置在 body 结束标签之前:
<script defer src="https://vitrinaengine.com/insight.js" data-site="..."></script>就这些。首次访问后一分钟内就会出现数字。
无需横幅,以及为什么可以放心依赖这一点
不在访客设备上存储任何内容,也不从设备上读取任何内容。没有 Cookie,没有本地存储,没有指纹识别。同意规则针对的正是在他人设备上存储或从中读取,而这两件事我们都不做,因此没有任何需要征求许可的东西。
访客在当天通过一段短哈希被识别,哈希由他的地址、你的站点,以及一个我们每天生成并在两天后销毁的密钥算出。只要该密钥还存在,掌握数据库的人就能为一个他已经拥有的地址重新计算出哈希;一旦它消失,谁都不能——包括我们自己。这就是匿名与仅仅化名之间的区别,也是整个设计的全部要义。
这样做的代价
访客数无法跨天去重。一周的数字是七天独立访客的总和,所以周一和周四都来过的人会被计两次。这一点写在仪表板上数字的旁边,而不是藏在脚注里,因为它是销毁密钥的直接结果,而不是舍入误差。
收集了哪些内容
页面路径、来源主机、粗粒度的浏览器、操作系统和设备类型,以及来自网络边缘的国家/地区。这份清单是封闭的——不存在自由填写的标签,因为一张分析表就是这样长出一列谁都无法辩护的电子邮件地址的。
查询字符串在存储前会被丢弃,只有utm_*和ref例外,它们按名字被提取出来,因为只有这两个是有人打算公开的。在真实的站点上,查询字符串正是密码重置令牌和?email=参数所在的地方。
自定义事件
要统计某件具体的事——一次注册、一笔购买——可以调用:
window.vitrina('signup');只有一个名称,别无其他。这里刻意没有负载参数:分析工具最终持有一个谁都没打算发送的电子邮件地址,正是从负载开始的。事件与页面浏览量分开统计,所以衡量转化不会抬高你自己的流量数字。
流量告警
为某个站点开启它,当访问量跌到明显低于正常水平、足以说明出了问题时,我们就会通知你——一次失败的发布、一处 DNS 变更、一个不再加载的支付页面。
正常水平取四周内同一星期几、同一小时的中位数,因为流量同时在两个维度上呈周期性,用平均值会让你每个周六晚上都被呼叫。此外还有一个下限,这样冷清的站点不会因为几乎为零的百分比而告警;每个站点同时只有一条未关闭的告警,这样整夜无流量的站点不会把人呼叫九十六次。
分享仪表板
站点的仪表板可以发布为一个链接,给客户看,或者作为公开的“开放指标”页面。链接使用派生令牌,而不是站点 id——这个 id 出现在它所测量的每个页面的源代码里,用它就意味着任何查看源代码的人都能读到你的流量。
分享开关在每次读取时都会重新检查,所以关闭它会在下一个请求上生效。
如果内容拦截器把它拦下来
把脚本和接收端点都放在你自己的域名下提供。脚本会根据自己被加载的位置推断出该往哪里发送,因此一个普通的反向代理不需要任何配置。脚本以未压缩的形式提供,没有任何东西被伪装。