Lightweight Google Analytics alternatives

Ben Hoyt

轻量级 Google Analytics 替代方案

原文由 Ben Hoyt 发布,订阅该博客

越来越多的网站所有者开始担心“无所不见的谷歌”会在用户浏览网页时追踪他们。Google Analytics(GA)是一款功能全面的免费网站分析系统,尽管存在隐私方面的担忧,它已成为各类网站——无论大小——事实上的标准分析工具。不过,近年来不断涌现的替代方案正在逐步打破谷歌的主导地位。本文将介绍两款轻量级的开源选择,即 GoatCounter 和 Plausible。在后续文章中,我们还将探讨几款功能更强大的工具。

GA 毫无疑问是这一领域最大的玩家:BuiltWith 显示,在排名前 10 万的网站中约有 86% 在使用它。这一比例在排名前 100 万的网站中则降至 64%。自谷歌收购 Urchin 并将其更名为 Google Analytics 以来,这一数字在过去 15 年里稳步增长。除了隐私方面的顾虑,GA 对某些网站所有者而言也过于复杂、功能过于臃肿;他们中的许多人只是想了解自己网站各个页面的访问量,以及这些流量来自何处。因此,近年来一些更简单、更开放的工具受到欢迎也就不足为怪了。

需要说明的是,LWN 目前仍在使用 GA,不过我们也在评估其他选择。然而,在偏好设置中关闭广告的用户将不会被加载 GA 代码。

谷歌追踪了什么,为何令人担忧

如果问谷歌到底追踪了哪些信息,愤世嫉俗者可能会回答:“一切”。问题的一部分在于,这离事实并不算远:谷歌追踪并存储了海量的用户信息。

Douglas Schmidt 在 2018 年论文 [PDF]中凸显了谷歌追踪的广度,其中以安卓设备的位置追踪为例:

即使在没有任何用户交互的情况下,安卓和 Chrome 都会向谷歌发送数据。我们的实验表明,一部处于休眠、静止状态且后台运行着 Chrome 的安卓手机,在 24 小时内向谷歌发送了 340 次位置信息,平均每小时 14 次。

该论文区分了“主动”追踪和“被动”追踪。主动追踪是指用户直接使用或登录谷歌服务,例如进行搜索、登录 Gmail 等。除了记录用户的所有搜索关键词外,谷歌还会在用户访问使用 GA 及其他谷歌发布商工具的网站时对其进行被动追踪。Schmidt 在一个“典型一天”的场景示例中发现,“谷歌有超过三分之二的信息是通过被动方式收集或推断的”。

Schmidt 的论文详细介绍了 GA 的 Cookie 追踪机制,并指出了“第一方”和“第三方”Cookie 的区别——后者会在多个网站间追踪用户及其广告点击行为:

GA Cookie 仅针对用户所访问网站的特定域名(即所谓“第一方 Cookie”),而 DoubleClick Cookie 则通常关联到一个通用的第三方域名(如 doubleclick.net)。谷歌利用这类 Cookie 来跨多个第三方网站追踪用户的交互行为。

当用户与网站上的广告发生交互时,DoubleClick 的转化追踪工具(例如 Floodlight)会在用户电脑上放置 Cookie 并生成唯一的客户端 ID。此后,如果用户访问了被推广的网站,DoubleClick 服务器会读取已存储的 Cookie 信息,从而将此次访问记录为一次有效转化。

由于有如此高比例的网站同时使用谷歌广告产品和 GA,其结果就是谷歌掌握了大量用户在众多网站上的浏览历史,既包括热门大站,也包括小型的“夫妻店”式网站。简而言之,谷歌对你的喜好、位置和购物情况了如指掌。

谷歌确实提供了关闭定向广告、位置追踪等功能的方法,也允许用户删除与账号关联的个性化档案。然而,这些功能几乎都需要用户主动选择开启,大多数用户要么根本不知道它们的存在,要么也懒得去关闭。

当然,仅仅弃用 GA 并不能消除所有这些隐私问题(例如,它无法阻止安卓的位置追踪或搜索追踪),但这确实是减少谷歌收集海量数据的一种方式。此外,对于使用 GA 替代方案的网站所有者来说,谷歌也无法在幕后窥探其网站的流量模式——而这些数据未来是有可能被用来打造竞争产品的。

LWN 的读者很可能更注重隐私:比如使用 Firefox 而非 Google Chrome、开启广告屏蔽等。然而,他们所搭建网站的用户未必同样注重隐私。对于网站开发者而言,所选择的分析工具可以帮助他们尊重用户隐私,避免让谷歌过多地了解其用户的浏览行为。

GoatCounter

GoatCounter 是较新的网站分析工具之一,于 2019 年 8 月推出。由 Martin Tournoij 创建,相比其他工具,它更带有“单人开发者作品”的气质;外观上或许没那么精致,但对开发者友好、部署简单。

[来自 www.goatcounter.com 的 GoatCounter 界面]

该工具支持所有基础的分析功能:按 URL 统计的页面浏览量和访问量、浏览器与操作系统统计、设备屏幕尺寸、地理位置以及来源信息。GoatCounter 默认显示最近 7 天按小时细分的数据,但网站所有者可以通过简单的控件调整时间范围。

GoatCounter 采用了一种不同寻常的定价模式,其源代码基于具有著佐权(copyleft)性质的欧盟公共许可证(EUPL)发布。企业可以自行托管该软件,也可以使用 GoatCounter 的托管版本,只需支付少量费用(不过托管版对“个人”项目免费)。Tournoij 曾撰写长文解释他为何选择 EUPL,其中提到:

我其实不太在意别人拿我的代码去做什么,但我在意的是自己的谋生能力是否会因此受到不合理的阻碍。如果有人拿着我的 MIT 代码全职做改进却不回馈给我,那就意味着我的竞争对手相当于有了双倍的人力在开发这个项目:一个是我(从他们的角度看是免费的),另一个是他们自己。他们将永远比我更具优势。

GoatCounter 由 Go 语言编写,其界面使用原生 JavaScript 实现一些轻量级交互。JavaScript 框架常常会妨碍网页可访问性,而 GoatCounter 在其首页就强调对可访问性的重视,这引起了用户“ctoth”的共鸣,他在 Hacker News 上向 Tournoij 致谢

这是我第一次在这样一个主流产品的首页上看到关于可访问性的说明。作为一名盲人开发者,这真的太棒了,让我真切地感到有人在倾听。感谢你做出这个产品。

除了统计页面浏览量,GoatCounter 还通过对浏览器的 user agent 和 IP 地址进行哈希来追踪会话,从而在不存储任何个人信息的情况下识别客户端。用于生成这些哈希的每 4 小时以滑动窗口的方式轮换一次。Tournoij 撰写了一篇详细介绍会话追踪技术细节的文章,其中还对比了其他具有类似目标的方案。

对于希望避免使用 JavaScript,或想统计禁用了 JavaScript 的用户的网站所有者,GoatCounter 支持无 JavaScript 追踪方案。它在需要统计的页面中通过 <img> 标签嵌入一张 1x1 的透明 GIF 图片来实现,不过这种方式不会记录来源和屏幕尺寸。

GoatCounter 的托管版部署非常简单——创建账号并在我的网站上添加一行 JavaScript 大约只花了五分钟。几秒钟内就开始显示分析数据。即使是托管版,网站所有者也完全拥有自己的数据,可以随时导出完整数据或删除账号。

自托管版本同样部署简单,可以使用 Linux 二进制文件或从源码编译——我用默认的 SQLite 数据库配置从源码编译并在本地部署,总共花了不到十分钟。与下文将讨论的 Plausible 相比,它的安装要轻量得多,无需下载任何额外内容,几乎瞬间就能启动。

Plausible

Plausible 是另一款相对较新的分析工具,于 2019 年初推出。发布后不久,它便转为开源,代码采用宽松的 MIT 许可证。该公司的商业模式是通过托管服务收费,定价面向小企业。除了开放源代码,Plausible 还是越来越多拥有公开路线图以提高透明度的公司之一。它还在其博客上为潜在客户发布资讯内容。

[来自 plausible.io 的 Plausible 界面]

从技术角度看,Plausible 颇具特色,其服务器代码Elixir 编写——这是一种运行在 Erlang 虚拟机上的函数式编程语言。它的前端界面仅使用少量原生 JavaScript 实现交互部分,而没有采用 React 这类渲染框架。它还宣称拥有最小的分析脚本之一,在本文撰写时,plausible.js 仅 781 字节(未压缩 1.2KB)。相比之下,GA 的 analytics.js 接近 18KB(未压缩 46KB),而 GoatCounter 的 count.js 为 2.3KB(未压缩 6.3KB)。由于每个页面都会加载这些脚本,体积上的差异会带来显著影响。

在用户界面方面,Plausible 显然比 GoatCounter 更为精致。不过它也相当极简,甚至可能比 GoatCounter 还要简洁,提供总访客数、按路径统计的页面浏览量、来源信息、地图位置以及设备信息(按屏幕尺寸、浏览器和操作系统细分)。该工具还提供了“跳出率”指标,不过其确切定义并不明确。

Plausible 的首页声称其提供“100% 数据所有权”,用户可以导出单个图表的 CSV 数据(也可以删除 Plausible.io 账号)。然而,其数据转储的实用性远不及 GoatCounter 的完整数据转储,后者包含了每个事件的详细信息。

自托管 Plausible 是可行的(甚至是 plausible 的),不过正如创始人 Uku Taht 在宣布转向开源时所指出的:

值得注意的是,目前还没有对自托管 Plausible 的正式支持。该项目仍在快速演进,维护自托管方案会大大拖慢产品开发进度。一旦产品和业务更加稳定,我非常乐意在未来提供自托管方案。

话虽如此,就在几周前,Plausible 新增了一份文档,介绍了使用 Docker 自托管该系统的一种实验性方法。按照其中的建议,我尝试使用 docker-compose 在本地运行。在长达数分钟的安装过程中,它下载了数量惊人的 Docker 和 npm 软件包,着实让人不安,而即便安装完成,仍出现了一个难以理解的 PostgreSQL 迁移错误,导致无法启动——“实验性”这个标签确实名副其实。

专有方案简介

还有几款值得一提的轻量级专有工具,它们同样注重隐私。显然,这些工具不具备开放开发或自托管的优势,但仍提供了一种摆脱谷歌数据收集网络的低成本途径。

其中之一是极简的 Simple Analytics,这是一款由独立开发者 Adriaan van Rossum 创建的云端工具,界面简洁,仅展示少数关键指标,与 Plausible 类似。另一款是 Fathom,它最初是开源的,但当前版本为专有软件(不过该公司希望未来能重新开始维护开源代码库)。

总结

过去几年里涌现出不少优秀的 Google Analytics 替代方案,尤其适合那些只需要少数基础功能的用户。许多近期的替代方案既开源又注重隐私,这意味着项目和企业继续使用专有分析系统的理由越来越少。

对于只需要基础流量数据的网站所有者来说,GoatCounter 和 Plausible 似乎都是极佳的选择。更看重界面精美度和文档的用户可能会更喜欢 Plausible;而更看重开发者友好性和简易自托管的用户则可能更偏爱 GoatCounter。我们很快将发布第二篇文章,介绍一些更重量级的 GA 替代方案,以及基于 Web 服务器日志提供分析的工具。

本文章由 muse-spark-1.2-contributor 进行翻译

评论