为Discourse添加Plausible Analytics或Fathom追踪

Plausible Analytics

  • 首先,将您的域名添加到 Plausible Analytics 实例并获取您的跟踪代码。它应类似于以下内容:
<script async defer data-domain="community.example.com" src="https://plausible.example.com/js/plausible.js"></script>
  • 管理 > 自定义 > 主题 创建一个新的主题组件。

  • 然后将跟踪代码粘贴到 <head> 部分。

  • 点击 保存

请务必将此代码添加到所有可用主题中,以便您能够跟踪所有用户的分析数据!

就这样!

:information_source: 如果您没有看到数据流动,该脚本可能会被您的 CSP 设置阻止。请检查您的浏览器控制台,如果遇到错误,请将 https://plausible.io/js/script.js 添加到您的 CSP 设置中。


编辑: 由于此更新 https://meta.discourse.org/t/content-security-policy-now-uses-strict-dynamic/298172,不再需要为 Fathom 或 Plausible 添加内容安全策略脚本源。

Fathom

请参阅 Fathom 的 Discourse 指南。

2025 年 5 月 14 日更新,包含 Fathom 的 Discourse 指南
更多信息,请参阅 Fathom 的指南:

注意: 对于 Plausible 和 Fathom,它们的脚本在附加到您主题的主题组件中以及插入到每个需要跟踪的模板的头部都能正常工作。Fathom 的新指南未使用“组件方法”。

27 个赞

根据 Plausible 在 GitHub 上的路线图,似乎不久的将来就可以将个人的 Plausible 页面嵌入到自己的网站中。

像这样的功能可以嵌入到 Discourse 中吗?还是需要插件,或者……?

5 个赞

你需要为此使用一个主题组件。

6 个赞

@Falco,你的前端路由有什么变化吗?我看到你建议用户使用我们脚本的 hash 版本,该版本专为基于哈希的路由器提供。在我看来,Discourse 现在似乎正在使用 HTML5 PushState API,对吗?

3 个赞

不确定为什么 @justin 在这里选择了哈希版本,因为我们一直使用 HTML5 History API。已将原帖设为维基,现在所有人都可以编辑。

1 个赞

我使用 Plausible,可以确认常规的 plausible.js 不会在用户从一个话题切换到另一个话题时记录 URL。因此,如果我要准确反映访客情况,就必须使用哈希版的 Plausible JS。

不过,哈希版本我也遇到了同样的问题。

这些相互矛盾的报告真奇怪。理论上,既然 Discourse 使用了 HTML5 History API,我认为我们的标准脚本(而非 hash 脚本)应该能正确跟踪。

遗憾的是,我没有设置 Discourse 实例来进行测试。

可能是我对这方面了解不够 :slight_smile: 我最初选择哈希版本是因为我们是单页应用(SPA),并且为其他分析提供商设置了自定义跟踪。如果 plausible.js 能正常工作,请随意更改!

1 个赞

你好 @ukutaht

我将其中一个 Discourse 站点的 plausible.hash.js 切换到了 plausible.js,但切换后出现了以下情况。

该站点在新标签页中打开,但完全没有显示任何活动记录。

这是我的另一个使用 plausible.hash.js 的站点,它正确地显示了 1 名在线用户,并且“热门页面”小部件中也正确显示了相应的页面。

如果尝试任何排查步骤有助于消除对哈希版 JS 的需求,我很乐意配合测试。

3 个赞

啊,是的,经你这么一说,我想起来了,我也见过同样的行为——这也是我选择使用哈希脚本方案的原因。

3 个赞

问题可能有点傻。添加这个功能是追踪你 Discourse 社区内部的活动,还是追踪社区链接到的其他域名的出站流量?

通过这项功能,你可以获取哪些类型的指标?

1 个赞

我可以在我的 Plausible 仪表板中查看我的 Discourse 论坛的哪些链接被访问过,以及来自哪些国家。

2 个赞

使用 Plausible 作为分析工具存在一些 bug 吗?

不,它应该可以正常工作。我已经在我的社区使用了一段时间,没有发现任何问题。

1 个赞

我已经编辑了 OP 以包含使用 Fathom 的简单说明。请根据需要进行扩展并进一步测试。

2 个赞

太棒了 :smiley:

2 个赞

您好,感谢您的指南。

我想将 Fathom 集成到 Discourse 中,我是否需要像您在 Plausible 中那样将 hash.js 添加到代码中?

我认为是 script.js,正如 OP 中所指出的(阅读至**添加对 Fathom 的支持**)。

2 个赞

更新: Fathom 的技术人员整理了一份简单的文档,指导您完成所需的操作。请享用!

Fathom 注意: 可能有一种方法可以更改它,但 Discourse 会为所有页面添加指向主页的 rel="canonical" 标签。因此,我们在 Fathom 中看到的所有页面浏览量都显示为仅来自主页。

我与 Fathom 沟通后,他们建议在您的跟踪脚本中添加 canonical="false",使其如下所示:

<!-- Fathom - beautiful, simple website analytics -->
<script src="https://cdn.domain.com/script.js" data-spa="auto" data-site="ADHGFREZ" data-canonical="false" defer></script>
 <!-- / Fathom -->

这解决了问题。

3 个赞