为什么我拒绝在开源项目中提供 Google Analytics

发布: (2025年12月20日 GMT+8 19:03)
4 min read
原文: Dev.to

Source: Dev.to

背景

我构建开源应用,大多数都是自行托管的。和许多开发者一样,我需要度量——不是营销度量,而是基本信号:

  • 这个应用真的在被使用吗?
  • 有多少实例在运行?
  • 哪些功能被使用了?

很长一段时间,默认答案显而易见:Google Analytics。但在某个时刻,我决定彻底停止使用它。

为什么 Google Analytics 不合适

Google Analytics 本身不是坏工具;它是为完全不同的目的而构建的。它假设:

  • 集中的 SaaS 产品
  • 被追踪的终端用户
  • 营销漏斗
  • Cookie、同意横幅以及外部依赖

这些都与自行托管的开源软件不太匹配。在开源应用中嵌入 GA 意味着:

  • 将使用数据发送到用户基础设施之外
  • 引入你无法控制的法律和隐私问题
  • 在你只想要聚合使用情况时追踪个人

此时,成本(技术、伦理、认知)已经超过了价值。

我的需求

我查看了许多“隐私友好”或“自行托管”的分析工具(例如 Countly、PostHog)。它们大多数仍然假设:

  • 网站,而非分布式实例
  • 用户追踪(即使是匿名的)
  • 为营销团队设计的仪表盘
  • 为非常简单的问题提供繁重的部署

我需要的要简单得多。对于开源和自行托管的软件,我关心的问题虽然乏味,却至关重要:

  • 这个实例还在运行吗?
  • 有人在使用这个功能吗?
  • 采用率在增长还是停滞?
  • 这个版本是否破坏了使用模式?

我不需要:

  • 页面浏览量
  • 漏斗
  • 会话重放
  • 用户身份

我只需要信号,而不是监视。

引入 SHM(Self‑Hosted Metrics)

于是我构建了一个小型开源服务,叫 SHM(Self‑Hosted Metrics)。它刻意保持极简:

  • 接受简单的 JSON 事件
  • 不追踪用户
  • 与应用无关
  • 适用于自行托管的部署

目标不是做分析,而是提供使用情况的可观测性,同时不违背开源或自行托管的原则。

仓库:

结论

很多真实需求介于“完全没有度量”和“完整的 SaaS 分析堆栈”之间。大型工具并不关注这些需求,但对维护者、独立开发者和小团队来说,这些需求很重要。并不是所有东西都必须像增长漏斗那样被测量。有时候,仅仅知道你的软件在被使用就足够了。

Back to Blog

相关文章

阅读更多 »

反编辑器

文章链接: https://github.com/kvthweatt/unredactor 评论链接: https://news.ycombinator.com/item?id=46368471 得分: 5 评论: 1…

为什么开源

介绍 本文档解释了我如何开始编写一个 open‑source 软件项目。原因众多且有趣。这是一份非技术性文档……