高级 Google Analytics (v4)

:information_source: 摘要 为 Discourse 提供高级的 Google Analytics 4 事件跟踪功能
:hammer_and_wrench: 仓库链接 https://github.com/multidimension-al/discourse-google-analytics
:open_book: 安装指南 如何在 Discourse 中安装插件

Discourse 核心系统每次导航仅向 Google Analytics 发送一次 page_view。此插件增加了阅读时长、阅读进度和阅读完成度的事件,并可选择接管页面浏览量,从而排除私信和管理员路由。

为什么不使用内置的 SEO/GA 分析标签?

你可以使用内置标签,对于许多论坛来说这就足够了。核心系统的标签是有效的,且此插件是在其基础上运行,而非替换它。

区别在于测量的内容。page_view 只能告诉你 URL 被加载了,但它无法告诉你是否有人阅读了页面上的内容。因此,在报告中,花费二十分钟阅读一个长主题和瞬间跳出看起来是一样的。此插件测量用户实际阅读了多久、阅读到了主题的哪个位置,以及是否读到了结尾。这些才是值得用来做出内容决策的信号,也是构建再营销受众群体的关键。

Discourse 自身的报告(管理员 → 报告)是一个独立的系统,仍然是查看内部指标的最佳位置。此插件仅关注发送到 Google Analytics 的数据。

功能

  • 13 种社区事件:主题浏览量、互动和阅读进度里程碑、阅读完成度、每次访问的摘要、搜索、注册、登录、主题创建、回复、点赞、书签
  • 阅读测量基于帖子流和专注时间,而非滚动深度
  • 两种模式:扩展核心系统现有的标签,或接管标签和页面浏览量
  • 私信、受限类别和管理员路由不产生任何事件
  • 默认关闭主题标题和搜索词发送
  • 可按组将员工流量标记为 GA4 内部流量
  • 提供诊断页面和管理员仪表板警告,用于检测配置错误

配置

1. 安装

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/multidimension-al/discourse-google-analytics.git

然后运行 ./launcher rebuild app

2. 选择模式。 管理员 → 设置 → Google Analytics 4。

核心扩展(默认)— 核心系统保留标签和页面浏览量,插件在其基础上添加事件。将核心系统的 ga universal tracking code 设置为你拥有的 G-XXXXXXXXXX,并将 ga version 设置为 v4_gtag

托管模式 — 插件接管标签和页面浏览量,这使得它可以排除私信和管理员路由。清除核心系统的 ga universal tracking code,将 ga4 integration mode 设置为 managed,并将你的 ID 填入 ga4 measurement id

3. 开启 discourse ga4 enabled

4. 可选 — 内部流量。 ga4 internal traffic groups 默认为管理员和版主。只有在 GA4 的管理员 → 数据设置 → 数据筛选器 → 内部流量中创建匹配的筛选器(匹配 traffic_type 等于 internal)后,此设置才会生效。

5. 验证。 管理员 → 插件 → Google Analytics → 诊断。

要将现有设置从核心扩展模式切换到托管模式,请使用诊断页面上的 Adopt existing Discourse GA configuration(采用现有 Discourse GA 配置),而不是手动编辑设置。

设置

名称 描述
discourse ga4 enabled 启用插件。默认关闭。
ga4 integration mode core_extension(核心系统拥有标签)或 managed(插件拥有标签)。
ga4 measurement id GA4 测量 ID,用于托管模式。
ga4 track page views 发送 page_view。仅限托管模式。
ga4 track topic views 每次访问主题时发送一次 discourse_topic_view
ga4 track topic engagement 在阅读时长里程碑时发送 discourse_topic_engaged
ga4 engagement milestones 触发事件的主动阅读秒数。默认 10|30|60|180
ga4 track topic progress 在阅读位置里程碑时发送 discourse_topic_progress
ga4 progress milestones 触发事件的主题百分比。默认 25|50|75|100
ga4 track read completion 当读者到达结尾时发送 discourse_topic_read_complete
ga4 read complete min seconds 结尾被视为完成所需的最小阅读时间。
ga4 track read summaries 当读者离开主题时发送 discourse_topic_read_summary
ga4 read summary min seconds 低于此值,访问被视为跳出,不生成摘要。
ga4 track search 当整页搜索返回结果时发送 search
ga4 track registration 账户创建后发送 sign_up
ga4 track login 成功登录后发送 login。默认关闭。
ga4 track topic creation 发送 discourse_topic_created
ga4 track replies 发送 discourse_reply_created
ga4 track likes 发送 discourse_post_liked。取消点赞不发送任何事件。
ga4 track bookmarks 发送 discourse_bookmark_created
ga4 send search terms 同时发送搜索内容。默认关闭 — 论坛搜索通常包含个人信息。
ga4 send page titles 包含页面标题。默认关闭 — 在主题路由中,这是主题标题。
ga4 track private message activity 发送一个不包含标识符的聚合私信事件。默认关闭。
ga4 login required is restricted 在需要登录的论坛上,保留主题和类别标识符。
ga4 send trust level 包含信任级别 0–4 作为事件参数。
ga4 internal traffic groups 这些组的成员将被标记为 traffic_type=internal。默认:管理员、版主。
ga4 suppress in embed 在嵌入模式下不发送任何数据。
ga4 debug mode 将事件和抑制决策记录到浏览器控制台。

备注

  • 在核心扩展模式下,核心系统仍然拥有页面浏览量,因此私信 URL 和主题标题仍会被发送。只有托管模式才会改变这一点。
  • 不要将 topic_id 注册为 GA4 自定义维度 — 它是无界的,将会触及属性的基数限制。
  • Discourse 自身的管理员 → 报告 → 热门搜索记录的是点击通过,因此它能告诉你哪些搜索失败了。GA4 做不到这一点。这就是为什么 ga4 send search terms 默认关闭的原因。
2 个赞