作者:Kristijan Sekereš

Rybbit Analytics:无Cookie、可自托管的Google Analytics替代方案

Rybbit仪表板

什么是Rybbit,它如何工作,以及如何设置?

Rybbit是一款开源的网站分析工具,统计访客时不设置Cookie。它还是个年轻的项目:1.0版于2025年5月30日发布,2.0版于2025年10月推出;截至2026年10月15日,最新版本是2026年9月12日打上标签的2.9.1。代码以AGPL-3.0许可证发布在GitHub上。其背后的美国公司Tomato.gg LLC也出售托管版本。

我们在c9group.dev上使用它,部署在自己的服务器上,和我们自托管的Mautic一样。想知道访客在某个页面上究竟做了什么时,我们最先打开的就是它。本指南介绍它擅长什么、哪里不足,以及如何设置。

工作原理如下:一个小脚本script.js从您的Rybbit服务器加载,并把页面浏览和事件回传给这台服务器。事件存入ClickHouse,这是一个专为此类计数而设计的列式数据库。账户、站点和设置保存在Postgres中。仪表板是一个Next.js应用,背后的API是一个Node.js服务器。

使用Rybbit的主要优势是什么?

不使用Cookie

Rybbit不设置任何Cookie。服务器根据访客IP地址和浏览器用户代理生成的哈希值来识别回访者;从2.8版起,即使访客的IP地址在访问中途发生变化,它也会比对浏览器特征,仍把对方算作同一个人。相比之下,GA4会设置Cookie并等待用户同意,因此所有忽略或拒绝同意横幅的访客都不会出现在它的报告里(Google的意见征求模式会通过建模补回其中一部分)。

不用Cookie,并不意味着就没有同意问题。无论您如何设置,2.9版的跟踪脚本在每次访问时都会把一个随机访客ID写入浏览器的本地存储;只有当您使用Rybbit的功能开关时,这个ID才会发送到服务器。《电子隐私指令》的同意规则(第5条第3款)涵盖存储在访客设备上的任何信息,而不只是Cookie,欧洲数据保护委员会(EDPB)的第2/2023号指南对此也作了宽泛的解释。GDPR同样适用:IP地址仍然会到达您的服务器,而且Rybbit自己的文档也写明,默认的哈希ID“在GDPR下可能被视为存储可识别个人身份的数据”。

因此,Rybbit能否在访客回应横幅之前运行,应由对您的隐私政策负责的人来决定,而不是“无Cookie”这几个字就能说了算。可以收窄其收集范围的设置,见下文的“隐私设置”。

能直接用来决策的会话细节

每个会话都带有流量来源、UTM参数、渠道、时长和页面浏览量。开启自动捕获后,它还会统计按钮点击、表单提交、输入变化、文本复制和外链点击。“访客到底有没有认真看?”不再靠猜,而是有了一个数字。

如果您在为流量付费,在提高预算之前,就能在这里看到这些访客是读完了页面,还是不到一秒就离开了。

免费版就有回放、漏斗和用户旅程

自托管版包含会话回放、漏斗、用户旅程、留存、目标、错误跟踪和Web Vitals。这正是Rybbit与其他方案差别最大的地方。Matomo把面向自托管安装的热力图和会话录制作为付费插件出售。Plausible的免费Community Edition则不包含漏斗和用户旅程。

运行轻量

Rybbit要求服务器至少有2GB内存。一台VPS就能跑起整套服务,其官方文档估计自托管部署需要30到120分钟。

API与MCP服务器

仪表板上的所有内容都可以使用个人API密钥,通过REST API获取。Rybbit还提供MCP服务器,因此Claude Code或Cursor等AI助手可以直接查询您的数据。两者都支持自托管实例。

如何设置Rybbit

Rybbit Cloud

最快的方式:注册、添加域名、粘贴一个脚本标签即可。云服务将分析数据存储在Hetzner位于德国和芬兰的服务器上。套餐和价格见下文的“成本考量”。

WordPress

没有官方插件,也不需要。按照Rybbit的WordPress指南,可以通过WPCode等插件,或者子主题的functions.php或header.php添加脚本标签。在WordPress.com上,这需要Business及以上套餐。

使用Docker自托管

小规模:初创公司和小型网站

您需要:

  • 一台至少有2GB内存的VPS。Rybbit在x86_64架构的Ubuntu 24 LTS上经过测试;ARM服务器必须是ARMv8.2-A或更新的架构,因为ClickHouse有此要求。
  • Docker Engine和Git。
  • 一个子域名,例如analytics.example.com,其A记录指向该服务器。HTTPS是必需的,因为浏览器会拦截通过明文HTTP提供的跟踪脚本。如果域名托管在Cloudflare上,请把该记录设为DNS only,或把SSL模式设为Full或Full (strict)。

然后运行:

git clone https://github.com/rybbit-io/rybbit.git
cd rybbit
chmod +x *.sh
./setup.sh analytics.example.com

脚本会写入一个.env文件并启动以下容器:ClickHouse、Postgres、Redis、后端、仪表板,以及负责获取TLS证书的Caddy。打开https://analytics.example.com/signup,创建第一个账户。

接着记得随手关门:在.env中添加DISABLE_SIGNUP=true并运行./restart.sh,这样陌生人就无法在您的服务器上注册账户。

如果服务器上已经有Traefik或Nginx等反向代理,请运行./setup.sh analytics.example.com --no-webserver。这样不会安装Caddy,由您现有的代理负责TLS终止。

更新时,先运行git pull,再运行./update.sh。

大规模:大型网站和代理机构

后端从环境变量中读取CLICKHOUSE_HOST、POSTGRES_HOST和REDIS_HOST,因此无需改动应用,就能把每个数据库迁到独立的服务器上。会不断变大的是ClickHouse:它保存所有事件,如果您录制回放,还保存所有回放。首先给它配一台带高速SSD存储的专用机器。

在AWS上,后端和仪表板镜像可以像其他容器一样运行在ECS Fargate上,ClickHouse放在EC2实例上,Postgres放在RDS上。会话回放默认保留30天,这是通过两张ClickHouse表上的TTL实现的,您可以把它调短。

如果您不想自己运维其中任何部分,Rybbit的Enterprise套餐提供专属实例或本地部署安装。

跟踪脚本

<script src="https://analytics.example.com/api/script.js?siteId=YOUR_SITE_ID" async></script>

请通过URL传入站点ID。旧的data-site-id属性仍然可用,但WP Rocket等优化插件会重建脚本标签,并丢掉data-属性。

单页应用无需任何额外配置。脚本会跟随History API导航,在500毫秒的防抖之后,把每次路由变化记录为一次页面浏览。以#/开头的哈希路由也会被跟踪。

发送自定义事件:

window.rybbit.event('quote_requested', { plan: 'pro' });

事件名称最长256个字符,属性(字符串和数字)最大2KB。

Rybbit的核心功能

分析

  • 会话、独立用户、页面浏览量、跳出率和会话时长
  • 带实时地球仪的实时仪表板
  • 精确到国家、地区和城市的位置
  • 超过15个维度的筛选,以及可保存的细分
  • 带属性的自定义事件
  • 目标、漏斗、用户旅程和留存
  • 未捕获JavaScript错误的错误跟踪
  • Web Vitals
  • 机器人检测与过滤

行为

  • 会话回放,默认遮盖所有输入值
  • 自动捕获点击、表单提交、复制和外链
  • 用户档案:对已登录用户调用rybbit.identify()后,可显示姓名和特征

共享与集成

  • 不限数量的站点和组织,组织内可建团队
  • 公开仪表板和可嵌入的小组件
  • REST API和MCP服务器
  • Google Search Console集成(自托管时需要Google OAuth凭据)
  • 支持从Plausible、Umami和Simple Analytics导入

隐私设置

  • User ID Salting(用户ID加盐):每天更换访客哈希,因此24小时后Rybbit就不再记得某人是谁。代价是实实在在的:较长时间段内的独立用户数会虚高,留存报告也会失去意义。请在上线前做出决定,因为之后再切换会打断您的趋势线。
  • Track IP Address(跟踪IP地址):除非您主动开启,否则保持关闭。Rybbit的文档称存储IP“不符合GDPR”。
  • 会话回放:站点级设置,一旦启用,就会录制所有访客。若只想录制已同意的访客,请在提供给其他所有访客的脚本标签中添加data-replay-sample-rate="0"。
  • 回放遮盖:给元素加上rr-block类可将其排除在录制之外,加上rr-mask类则会把其中的文字替换为星号。
  • 排除规则:可按IP或IP段、国家、路径、主机名和用户代理排除,在服务器端、任何数据存储之前生效。

为什么选择Rybbit而非其他方案?

对比Google Analytics 4

  • 覆盖面:在允许同意前加载的情况下,它能统计那些始终不回应横幅的访客(见上文“不使用Cookie”)
  • 数据位置:在您自己的服务器上,或在Rybbit托管于欧盟的云服务中
  • 行为细节:GA4没有的会话回放,以及每个会话清晰可读的记录
  • GA4胜出之处:Google Ads集成、用于再营销的受众群体,以及数据驱动归因

对比Matomo

两者我们都部署过,参见我们的Matomo指南。

  • Matomo历史更久、覆盖更广:电子商务报告、标签管理器、庞大的插件库,以及可导入Google Analytics历史数据的导入工具。它运行在PHP和MySQL上,几乎所有主机都支持。
  • Rybbit免费提供的更多:无需付费插件即可使用的回放和漏斗,以及更简洁的仪表板。
  • Cookie:Rybbit不设置任何Cookie。Matomo默认使用第一方Cookie,也可以配置为不使用Cookie。
  • 历史数据:Rybbit无法从Google Analytics或Matomo导入数据。

如果您做在线销售,或需要GA的历史数据,请选择Matomo。如果您想看清访客在做什么,又不想涉及任何Cookie,请选择Rybbit。

对比Plausible

  • 两者都不设置Cookie,都采用AGPL许可证。
  • Plausible的免费Community Edition不含漏斗、用户旅程、电子商务收入目标、SSO和站点API,而且每年只发布两次。
  • Plausible没有会话回放。
  • 两者之中,Plausible更简单。如果您只需要一页核心数据,这就是它的优势。

Rybbit的不足之处

  • 项目还很年轻:1.0于2025年5月发布,版本更新频繁。每次更新前请先阅读发布说明。
  • 不报告转化:Rybbit衡量的是页面上的行为。Google Ads和Meta仍需要各自的转化跟踪,绝不应把Rybbit的计数当作转化。
  • 自动捕获按文字给按钮命名:在多语言网站上,同一个按钮在每种语言中都会作为单独的事件出现,因此一个有19种语言的网站,会把同一次点击拆成19个版本。请改为给每个漏斗步骤发送命名的自定义事件。
  • 自托管版没有邮件报告:云服务版有。
  • AGPL义务:如果您修改了Rybbit并让他人通过网络使用,就必须公开您的修改。

技术要求

截至2026年10月15日,最新版本为2.9.1。

最低要求

  • 2GB内存
  • x86_64,或ARMv8.2-A及更新架构
  • Docker Engine和Git
  • 启用HTTPS的域名或子域名

生产环境推荐

  • 4GB或以上内存,因为ClickHouse最吃内存
  • SSD存储
  • 定期备份ClickHouse和Postgres两个数据卷
  • 创建第一个账户后关闭注册

成本考量

自托管

  • 软件:免费,采用AGPL-3.0许可证
  • 服务器:起步只需一台小型VPS
  • 维护:您花在更新和备份上的时间

Rybbit Cloud

2026年10月15日的价格,按年计费,提供7天免费试用:

  • Standard:月页面浏览量10万次,每月13美元起。最多5个站点和3名团队成员,数据保留3年,不含会话回放。
  • Pro:每月26美元起。站点和团队成员不限,含会话回放,数据保留5年。
  • Enterprise:价格需询价,包括专属实例或本地部署实例。

最佳实践

  1. 及时关闭注册:您自己的账户一建好,就把注册关掉。
  2. 上线前决定是否启用User ID Salting:之后再改,会打断用户数的连续性。
  3. 排除自己的流量:按主机名排除localhost和预览域名,按IP排除办公室。
  4. 在内容安全策略(CSP)中放行脚本:您的Rybbit域名要同时加入script-src和connect-src,否则浏览器会拦截它,而原因只会显示在控制台里。
  5. 自己命名漏斗事件:在多语言网站上,不要依赖自动捕获。
  6. 先遮盖,再录制:在开启回放之前,给订单确认页等显示客户数据的内容加上rr-block。
  7. 备份两个数据库:ClickHouse保存事件,Postgres保存账户和设置。
  8. 在隐私政策中写明Rybbit:包括它收集哪些数据、本地存储条目、录制会话回放的情况(如有),以及数据保留多长时间。

常见应用场景

  • 营销网站:在提高预算之前,看清付费流量是否真的在读页面
  • SaaS产品:已登录用户的漏斗、留存和用户档案
  • 代理机构:为客户提供不限数量的站点、团队和公开仪表板
  • 欧洲企业:把分析数据放在自己的服务器上,或放在托管于欧盟的云服务中
  • 调试:错误跟踪,以及出错那次会话的回放

需要帮助设置Rybbit吗?

我们自己就在生产环境中运行Rybbit。无论您需要:

  • 在现有反向代理之后自托管安装
  • 从Google Analytics迁移,或带着历史数据从Plausible或Umami迁移
  • 翻译后依然有效的自定义事件和漏斗
  • 对照您的隐私政策,检查隐私设置和回放遮盖
  • 将Rybbit与Mautic配合使用,从匿名访问一直追踪到已识别的潜在客户

请联系 office@c9group.dev 获取免费咨询和报价。


发布日期:2026年10月15日 分类:数据分析、开源、隐私

数据分析

新指南和法规变化,通过邮件送达

法规变化、期限调整或我们发布新指南时,会通过邮件发送给您。

我们会先发送一封确认邮件。您可以随时退订。 隐私政策

\n```\n\n请通过URL传入站点ID。旧的`data-site-id`属性仍然可用,但WP Rocket等优化插件会重建脚本标签,并丢掉`data-`属性。\n\n单页应用无需任何额外配置。脚本会跟随History API导航,在500毫秒的防抖之后,把每次路由变化记录为一次页面浏览。以`#/`开头的哈希路由也会被跟踪。\n\n发送自定义事件:\n\n```js\nwindow.rybbit.event('quote_requested', { plan: 'pro' });\n```\n\n事件名称最长256个字符,属性(字符串和数字)最大2KB。\n\n## Rybbit的核心功能\n\n### 分析\n- 会话、独立用户、页面浏览量、跳出率和会话时长\n- 带实时地球仪的实时仪表板\n- 精确到国家、地区和城市的位置\n- 超过15个维度的筛选,以及可保存的细分\n- 带属性的自定义事件\n- 目标、漏斗、用户旅程和留存\n- 未捕获JavaScript错误的错误跟踪\n- Web Vitals\n- 机器人检测与过滤\n\n### 行为\n- 会话回放,默认遮盖所有输入值\n- 自动捕获点击、表单提交、复制和外链\n- 用户档案:对已登录用户调用`rybbit.identify()`后,可显示姓名和特征\n\n### 共享与集成\n- 不限数量的站点和组织,组织内可建团队\n- 公开仪表板和可嵌入的小组件\n- REST API和MCP服务器\n- Google Search Console集成(自托管时需要Google OAuth凭据)\n- 支持从Plausible、Umami和Simple Analytics导入\n\n### 隐私设置\n- **User ID Salting**(用户ID加盐):每天更换访客哈希,因此24小时后Rybbit就不再记得某人是谁。代价是实实在在的:较长时间段内的独立用户数会虚高,留存报告也会失去意义。请在上线前做出决定,因为之后再切换会打断您的趋势线。\n- **Track IP Address**(跟踪IP地址):除非您主动开启,否则保持关闭。Rybbit的文档称存储IP“不符合GDPR”。\n- **会话回放**:站点级设置,一旦启用,就会录制所有访客。若只想录制已同意的访客,请在提供给其他所有访客的脚本标签中添加`data-replay-sample-rate=\"0\"`。\n- **回放遮盖**:给元素加上`rr-block`类可将其排除在录制之外,加上`rr-mask`类则会把其中的文字替换为星号。\n- **排除规则**:可按IP或IP段、国家、路径、主机名和用户代理排除,在服务器端、任何数据存储之前生效。\n\n## 为什么选择Rybbit而非其他方案?\n\n### 对比Google Analytics 4\n- **覆盖面**:在允许同意前加载的情况下,它能统计那些始终不回应横幅的访客(见上文“不使用Cookie”)\n- **数据位置**:在您自己的服务器上,或在Rybbit托管于欧盟的云服务中\n- **行为细节**:GA4没有的会话回放,以及每个会话清晰可读的记录\n- **GA4胜出之处**:Google Ads集成、用于再营销的受众群体,以及数据驱动归因\n\n### 对比Matomo\n两者我们都部署过,参见我们的[Matomo指南](/zh/articles/open-source-analytics-at-scale-privacy-customization-what-is-matomo-analytics-dashboard-how-does-it-work-and-how-to-set-it-up)。\n\n- **Matomo历史更久、覆盖更广**:电子商务报告、标签管理器、庞大的插件库,以及可导入Google Analytics历史数据的导入工具。它运行在PHP和MySQL上,几乎所有主机都支持。\n- **Rybbit免费提供的更多**:无需付费插件即可使用的回放和漏斗,以及更简洁的仪表板。\n- **Cookie**:Rybbit不设置任何Cookie。Matomo默认使用第一方Cookie,也可以配置为不使用Cookie。\n- **历史数据**:Rybbit无法从Google Analytics或Matomo导入数据。\n\n如果您做在线销售,或需要GA的历史数据,请选择Matomo。如果您想看清访客在做什么,又不想涉及任何Cookie,请选择Rybbit。\n\n### 对比Plausible\n- 两者都不设置Cookie,都采用AGPL许可证。\n- Plausible的免费Community Edition不含漏斗、用户旅程、电子商务收入目标、SSO和站点API,而且每年只发布两次。\n- Plausible没有会话回放。\n- 两者之中,Plausible更简单。如果您只需要一页核心数据,这就是它的优势。\n\n## Rybbit的不足之处\n\n- **项目还很年轻**:1.0于2025年5月发布,版本更新频繁。每次更新前请先阅读发布说明。\n- **不报告转化**:Rybbit衡量的是页面上的行为。Google Ads和Meta仍需要各自的转化跟踪,绝不应把Rybbit的计数当作转化。\n- **自动捕获按文字给按钮命名**:在多语言网站上,同一个按钮在每种语言中都会作为单独的事件出现,因此一个有19种语言的网站,会把同一次点击拆成19个版本。请改为给每个漏斗步骤发送命名的自定义事件。\n- **自托管版没有邮件报告**:云服务版有。\n- **AGPL义务**:如果您修改了Rybbit并让他人通过网络使用,就必须公开您的修改。\n\n## 技术要求\n\n截至2026年10月15日,最新版本为2.9.1。\n\n### 最低要求\n- 2GB内存\n- x86_64,或ARMv8.2-A及更新架构\n- Docker Engine和Git\n- 启用HTTPS的域名或子域名\n\n### 生产环境推荐\n- 4GB或以上内存,因为ClickHouse最吃内存\n- SSD存储\n- 定期备份ClickHouse和Postgres两个数据卷\n- 创建第一个账户后关闭注册\n\n## 成本考量\n\n### 自托管\n- **软件**:免费,采用AGPL-3.0许可证\n- **服务器**:起步只需一台小型VPS\n- **维护**:您花在更新和备份上的时间\n\n### Rybbit Cloud\n2026年10月15日的价格,按年计费,提供7天免费试用:\n\n- **Standard**:月页面浏览量10万次,每月13美元起。最多5个站点和3名团队成员,数据保留3年,不含会话回放。\n- **Pro**:每月26美元起。站点和团队成员不限,含会话回放,数据保留5年。\n- **Enterprise**:价格需询价,包括专属实例或本地部署实例。\n\n## 最佳实践\n\n1. **及时关闭注册**:您自己的账户一建好,就把注册关掉。\n2. **上线前决定是否启用User ID Salting**:之后再改,会打断用户数的连续性。\n3. **排除自己的流量**:按主机名排除`localhost`和预览域名,按IP排除办公室。\n4. **在内容安全策略(CSP)中放行脚本**:您的Rybbit域名要同时加入`script-src`和`connect-src`,否则浏览器会拦截它,而原因只会显示在控制台里。\n5. **自己命名漏斗事件**:在多语言网站上,不要依赖自动捕获。\n6. **先遮盖,再录制**:在开启回放之前,给订单确认页等显示客户数据的内容加上`rr-block`。\n7. **备份两个数据库**:ClickHouse保存事件,Postgres保存账户和设置。\n8. **在隐私政策中写明Rybbit**:包括它收集哪些数据、本地存储条目、录制会话回放的情况(如有),以及数据保留多长时间。\n\n## 常见应用场景\n\n- **营销网站**:在提高预算之前,看清付费流量是否真的在读页面\n- **SaaS产品**:已登录用户的漏斗、留存和用户档案\n- **代理机构**:为客户提供不限数量的站点、团队和公开仪表板\n- **欧洲企业**:把分析数据放在自己的服务器上,或放在托管于欧盟的云服务中\n- **调试**:错误跟踪,以及出错那次会话的回放\n\n## 需要帮助设置Rybbit吗?\n\n我们自己就在生产环境中运行Rybbit。无论您需要:\n\n- 在现有反向代理之后自托管安装\n- 从Google Analytics迁移,或带着历史数据从Plausible或Umami迁移\n- 翻译后依然有效的自定义事件和漏斗\n- 对照您的隐私政策,检查隐私设置和回放遮盖\n- 将Rybbit与Mautic配合使用,从匿名访问一直追踪到已识别的潜在客户\n\n**请联系 office@c9group.dev 获取免费咨询和报价。**\n\n---\n\n*发布日期:2026年10月15日*\n*分类:数据分析、开源、隐私*\n";