为什么我们不给老用户发信
本服务的计数器表里存着 4,148 个电子邮件地址。它们属于过去二十年间创建的计数器,那时候计数器带着一个地址栏,人们就把它填了。 有三个人要求收信。 这两个数字就是这篇文章的全部。它们之间的差距不是一个需要填平的问题。它就是设计。 拥有一个地址,不等于有权使用它 这些地址是为一个目的收集的 — 找回对计数器的访问 —…
AI 可以写什么,不可以写什么
在一个公开的统计页面顶部,这里可能有两三句话,描述这个计数器本月做了什么。它们是一个语言模型写的。模型在这里什么也不编造,而让这句话成立的那套安排值得描述一番——因为搭建这个功能的显而易见的做法,并不具备这个性质。 服务器跑 SQL,决定哪个数字值得一提,然后写提示。模型把一个事实变成一句所要语言的话。之后服务器把回答读回来,只要里面有一位数字不是来自提示,就把它扔掉。…
我们如何少收数据地统计点击
计数器回答的是「来了多少人」。更有用的问题通常是「有多少人做了什么」——点了联系方式、打开了下载、去了社交主页。本服务从事件功能上线那天起就能做这件事:给元素加上 data-s4u-event="kontakt",落在它上面的点击就会以这个名字被计入。…
无需 Cookie 横幅的访问统计
多数分析工具需要一条同意横幅,因为多数分析工具会在访客设备上存东西:一个 cookie、一条本地存储、一个能活到明天的标识符。欧洲法律管得最直接的就是这个存储行为——也正是它让横幅必须在一切开始之前先出现。 这个计数器不在设备上存任何东西。没有 cookie,没有本地存储,什么都没有。这一点可以直接验证:浏览器脚本里找不到…
我们不再收集屏幕尺寸
本服务以前会记录屏幕分辨率。浏览器脚本读取 window.screen,把它以 res=1920x1080 的形式一起发送,统计页面上也有一个对应的面板。 现在不记了。装这份数据的那张表今天有零行,面板显示的是它的空状态。脚本里进行读取的那一行,如今是一句说明当初写了什么的注释。 它为什么走了…
排行榜怎么运作,以及怎么退出
stats4u.net从一开始就对访问最多的计数器进行排名——一篇2012年的文章当时就已经在讨论如何改进它。当前版本位于/top,其底层运作方式和当年已经不同:按30天访客数排名的25个计数器、一份将本周与上周对比的独立"fastest…
新的隐私政策、条款和数据处理协议
截至2026年8月19日,stats4u.net的法律文件从原本的一份变成了三份:一份重新撰写的隐私政策、一份服务条款,以及——新增的——一份依据GDPR第28条订立的数据处理协议(DPA)。 为什么需要单独的DPA…
排除名单为什么不做哈希
正在建站的人,一天要打开自己的站二十次。在一个每月四十位访客的计数器上,统计的一半就是站长本人。所以有一个设置:不要统计来自我自己地址的访问。 本服务的其他每一处,地址都会连同一个保密的盐和日期一起哈希,地址本身从不进入存储。唯独这一处,它按输入时的样子原样保存,明文。这是一个有意为之的决定,它值得被说出来,而不是留给人去发现。 最先试过的那个版本…
以正确权限和时段将 Stats4U 报告导出为 CSV 或 JSON
统计页面上的 CSV 和 JSON 链接可下载报告,供进一步处理。应先打开有权访问的统计页面,选择目标时段,再使用当前下载链接。导出不会绕过私密统计或密码保护,下载后的文件也需要妥善处理。 使用所需权限打开统计页面 选择日期和文件格式 核对文件并安全保存 通过统计页面下载…
给网站加一个隐形访问计数器
不是每个人都想在页面上放一个计数器。很多人想要数字,却不想要角落里有个徽标把这些数字公之于众——作品集、公司网站,或者那种如果放一个可见的访问计数,看起来就像是在衡量错误东西的页面。 为此有两种样式可选,它们之间的差异很小,但是刻意为之的。 这两种样式…
要计数器还是要分析套件?
对标题中这个问题,诚实的答案是:这取决于希望统计数据回答什么问题。访客计数器和完整的分析套件,并不是同一种工具的两个档次。它们回答的是不同的问题,而给出答案所要付出的代价也不同。本文要谈的,正是这些代价究竟是什么。 计数器会让访客付出什么代价 以下是本站今天实测的数据,而非估算。一个 Stats4U 计数器会让访客付出两次请求的代价: 脚本文件 s4u.js——gzip…
不使用 Cookie 计数
访客计数器只有一项棘手的任务:分辨出两次访问是否不同。如果做不到,一个人把页面刷新十次,看起来就会像十个人访问过,而网站上的数字也就成了虚构。 常见的做法是使用 Cookie。本站没有使用它。下面是本站实际采用的方法,以及为什么这句诚实的话背后其实费了一番功夫。 没人要求过的 Cookie 直到今年之前,每一次对计数器的请求都会启动一个 PHP…