graycat.app
网站隐私说明
简要说明
GrayCat 官网使用自建的第一方统计记录主页到访,以及三种应用行动事件:产品页查看(product_view)、官网下载发起(download_start)和 App Store 外跳点击(app_store_outbound)。完整的访问量、下载量、行动和主页地域汇总仅供网站所有者查看;主页不公开显示访问量或任何地域数据。可直接下载的应用累计达到 100 次本站下载发起后,公开页面才显示 100+ 等分档里程碑。网站不设置统计 Cookie,不接入第三方分析脚本,也不保存原始 IP 地址。
如何计算一次到访
当主页在浏览器中打开时,会向同一域名的 Cloudflare Worker 发送一次统计请求。与普通网站请求一样,Worker 会在处理请求时短暂接触来源 IP;它随即使用仅保存在 Cloudflare Secret 中的密钥,把“UTC 日期与 IP”计算为 HMAC-SHA-256 带密钥当日摘要,然后丢弃原始 IP。没有该密钥时,摘要无法直接与原地址匹配;这属于假名化去重,而非绝对匿名化。
同一公网 IP 在每个 UTC 日最多计一次。因此该数字表示按网络和日期去重的到访次数,并不等同于精确人数:家庭、机构、VPN 或移动网络可能由多人共用同一个公网 IP。
对每个首次计数的当日访问,Worker 会读取 Cloudflare 根据来源公网 IP 推测的国家代码、一级行政区和城市,并只增加相应的按日汇总计数。这里的位置不是 GPS、街道或住宅地址;VPN、Tor、移动网络、企业出口和隐私代理可能让结果指向网络出口而非访客实际所在地,缺失字段会归为“未知”。地域表以 UTC 日期为最小时间粒度,不保存访问发生的具体时刻或逐请求日志;低流量时,某个“日期 + 城市”汇总仍可能为 1。
如何计算三种应用行动
- 产品页查看:产品页加载后,网站脚本向同一域名发送一次无正文的
product_view请求。关闭 JavaScript、内容拦截或网络失败时,这项事件可能不会记录。 - 官网下载发起:客户端向某个应用最新版本入口发出符合条件的 GET 请求时,Worker 在立即跳转到不可变安装包地址的同时尝试记录
download_start。它不证明文件传输完成或应用已经安装,也不包含自动更新或直接访问不可变安装包地址的请求。 - App Store 外跳:点击本站的 App Store 按钮时,第一方跳转入口在立即转向 Apple 原始页面的同时尝试记录
app_store_outbound。这只表示一次外跳点击,不代表 App Store 下载、购买或安装。
每一种事件都按“事件类型、UTC 日期、应用 ID 与公网 IP”分别生成带密钥摘要;同一公网 IP 对同一应用的同一事件,每个 UTC 日最多计一次。不同事件使用不同的 HMAC 输入域,不能据此可靠地把某位访客的产品页查看与后续行动连接成个人漏斗。HEAD 请求、预取、预渲染和已知自动预览程序不计数;统计数据库不可用时,下载和 App Store 跳转仍会照常完成。
活动来源代码
链接可以携带第一方 campaign 参数。统计只接受 producthunt、reddit、v2ex、sspai、bilibili、youtube、xiaohongshu、alternativeto、macupdate、hackernews、email、press、in_app 和 unattributed;缺失或不合法的值归为 unattributed。有效来源代码会随同源的普通页面导航保留,并传给本站的下载与 App Store 跳转入口;不会附加到隐私说明、受限后台页面、API、静态资源或站外链接,也不会写入 Cookie、localStorage 或 sessionStorage。同一公网 IP、应用、事件与 UTC 日只保留第一次计数所带的来源代码,之后的重复请求不会改写归因。统计不读取或保存原始 Referrer,也不保存完整访问路径。
保存什么
- 访问去重记录:UTC 日期、带密钥的当日摘要、Cloudflare 提供的大洲代码和首次记录时间。
- 主页地域日报:UTC 日期、国家代码、一级行政区代码与名称、城市名称,以及该组合的汇总访问次数;不含 IP、访客摘要或访问时刻。
- 应用行动去重记录:UTC 日期、事件类型、应用 ID、活动来源代码、带密钥的当日摘要和首次记录时间。
- 累计访问、大洲级计数和各应用官网下载发起次数,以及按 UTC 日期、事件、应用与活动来源形成的日报汇总;这些长期汇总不包含个人标识。
访问和应用行动的去重记录保留约 8 天;主页地域日报保留最多约 90 天;两者都由每小时定时任务清理。地域日报只用于查看近期国家、州/省与城市分布。应用行动日报长期保留,用于比较来源和行动率。
第一方统计数据库不会保存原始 IP、街道或住宅地址、邮政编码、经纬度、访问发生的具体时刻、逐请求位置日志、完整访问路径、页面浏览历史、原始 Referrer、Cookie、localStorage、sessionStorage、浏览器指纹、广告标识符或用户提交的内容。访问量和地域汇总都不会在公开页面显示。
用途与公开范围
主页不公开显示访问量或国家、地区、城市分布。完整访问、地域、下载和应用行动汇总仅供网站所有者查看。某款应用达到 100 次官网下载发起后,公开页面只显示 100+、500+、1K+ 等分档里程碑;低于 100 次时完全不显示。公开接口不提供精确总数、地域汇总或单个事件记录。按来源形成的日报只用于了解哪些发布渠道带来产品页兴趣、官网下载发起或 App Store 外跳。
这些数据只能形成汇总行动率,不是精确的个人转化漏斗。共享公网 IP、JavaScript 或内容拦截、网络失败和每日去重都会使产品页查看与后续行动之间出现差异。
Cloudflare
GrayCat 官网由 Cloudflare Workers、Static Assets 与 R2 提供,网络请求会由 Cloudflare 处理。国家、一级行政区和城市来自 Cloudflare 的 IP 地理位置推测;统计数据库使用 Cloudflare D1。摘要密钥通过 Cloudflare Secret 保存,不写入网站代码或数据库。
各款 App 不受影响
这项统计只发生在 GrayCat 官网,不会加入 GrayCat Markdown、GrayCat Text、GraycatTunes、GrayCat PDF 或 KneeDaily。应用自动更新不会计入官网下载统计,也不改变各款 App 已公布的隐私政策。
联系
网站隐私问题请发送邮件至 support@graycat.app。