【老鼠讲故事系列 004】油猴子加入统计代码

前言

这是一个新的系列,小老鼠尝试把各种乱七八糟的技术问题当成故事去讲,不知道会不会有同学爱听。 最后会埋下一个扣子,做个收费,价格一块钱,愿者上钩。

本系列会用讲故事的方式去聊一些技术问题,希望能够让对这些技术不了解的朋友,也能够读懂。所以如果你本身了解这些技术,就无需再阅读了。

本篇末尾有 40% 的内容被隐藏,需付费阅读。

请在阅读前确认你了解并理解了上述内容,以上,防杠

最近我的脚本用户开始多了一点,我就很希望能够获得一点用户的相关数据,因为只有对情况有所了解,才能够决定后面该做哪些优化。

于是决定给我的脚本加入统计代码。

如果只是一个网站,这会非常简单,找一个统计站,然后将代码放进去就可以了。但我要统计的是一个脚本的使用情况,如果也是同样操作,我会获得的数据对我意义并不大。当然会有一些用户的基本信息,比如使用怎样的浏览器,是什么操作系统,以及地域分布等。这些对于网站的优化是有意义的,但是对于脚本参考价值就要小多了。然后可以知道用户都浏览了哪些页面,可是脚本的生效范围都是我自己设置的,所以终归都在这个范围之内,而具体是哪个页面,对于脚本开发也没有什么参考价值。

我想要知道的是大家都使用怎样的脚本管理器,如果全都使用相同的脚本管理器,那我就只针对它一个进行特别优化就好。如果情况很复杂,那我就要更多的去考虑兼容性。还有用户对于脚本的更新速度,如果大家都能够及时更新,那我发现什么问题立刻修正,然后推送出来;而如果用户每周更新一次脚本,那我就要将更新适当集中,并尽可能确定每一次发出的版本都相对稳定。毕竟可能他更新到一个问题版本之后,要一个星期之后才会再次检查更新,那我对这个问题的修复无论发的多快都不能够及时的解决问题。

所以如果希望对自己的脚本进行优化,那么获取这些数据是一个很合理的需求。所以我给脚本加入了统计代码。

但是有的用户对此很敏感,认为这获取了他们的隐私信息。但显然我对隐私相关的内容一点兴趣都没有。

换一个角度,对于每一次网络请求,服务端都可以获取用户的 IP、浏览器、操作系统等基本信息,这也是为什么,网站统计只需要在页面中插入一张图片,就可以获得相关数据的原因。插入图片只是因为它普通而且方便,其实任何文件都可以。所以除非你不上网,否则这些数据总是会传递给各个网站。至于他们是否搜集……你猜。

我在加入统计代码的第一时间,就把这个事情公开的写清楚。并且对统计代码的加入做了非常谨慎的优化,我想是没有人会像我这样为一个统计代码费这么多心思的。首先我让统计代码延迟加载,页面加载完成之后三秒才开始插入统计代码,这对我来说会损失一部分数据,导致数据的准确性下降,但它可以确保对用户的影响降到最低。这里要特别说明,一般情况下统计代码对用户的影响,本身就是微不可查的,所以这种延迟加载简直就是毫无必要的优化。

现在我又让脚本遵循用户在浏览器中的禁止跟踪设定,如果用户设定网站不能跟踪自己,则不插入统计代码。这个设定现在很少被人提起,因为它只是一个建议,而非强制性的规定,是否遵守完全凭自觉。你猜有多少网站遵循这个设定……

而且上面也说了,服务器端可以很轻松的获取这些数据,而用户毫无察觉。其实我完全可以让脚本发出一个网络请求,我当然可以让这个网络请求是必须的,从网络中获取一张图片资源,这是非常正常的操作,然后在背后获取这些数据。这样的话,用户完全无法知道我获取数据的行为。但我还是选择了让用户清楚的了解这一情况。

然后在脚本仅有的 10 个反馈中,新增的两个反馈都是说我在获取用户信息,其中一个还给了我中评。然后发现他还对我的脚本进行了投诉。……可可爱爱,小老鼠把事情做得这么实实在在的,然后收到这样的结果。幸亏在夏天,否则还不寒心的冻死自己。

还是聊聊技术问题吧,上面说了可以用这些统计代码能够获得的数据,我并不怎么感兴趣,而我真正希望获得的数据又拿不到。当然我可以弄一个服务器,让脚本将相关的数据提交过去,这肯定最精确和完善。但因为这是脚本,导致很多验证方法无法使用,服务器没有办法验证,这个请求就是这个脚本发出的。倒是别人修改这个脚本十分容易。那只要有人想开个玩笑,我的服务器就能被刷爆,甚至这都没有什么技术含量。而且服务器还要钱啊……

所以还得从免费的服务上打主意。我不关心用户具体浏览的页面,但统计代码又会把用户浏览的网址给传输回来,那如果我把这个网址修改掉,让它包含我需要的数据,是不是就可以达成目的了?道理是这样的,但修改网址很可能造成用户的困惑,这才是真的给人添麻烦。但似乎除了这一条路又没有太好的方法……

【剩余 40% 的内容请至此处阅读: https://mp.weixin.qq.com/s/rhBzYxRxLUGx5E8IsXt4pw (需付费)】

或用微信扫描下方二维码。

0004

这个看脚本管理器吧,暴力猴是默认每日检查一次更新。

是这样,单整体上更新速度并不很快。确实有用户,几乎在第一时间更新。但是24小时内更新到最新版的用户,可能并不到 1/3(十分粗略的估计,我并没有详细去分析那些数据,而且我用的统计工具免费版只支持 500 条记录,也没有办法进行详尽的分析)。95% 以上的用户全部更新,大概需要一周左右的时间。