Skip to content

统计分析 (Umami)

集成轻量、隐私友好的统计系统 Umami,并支持“拦截提示”“文章阅读量”以及主题内置交互事件埋点。

Umami 脚本注入

hugo.toml 中设置:

toml
[params.analytics]
  provider = 'umami'

  [params.analytics.providers.umami]
    # 说明:Umami 脚本地址。
    scriptUrl = 'https://analytics.example.com/script.js'
    # 说明:你在 Umami 面板中获得的 Website ID。
    websiteId = '你的-id-123456'

    # 可选:当脚本被广告拦截器阻止时,是否在页面边缘弹出友情提示。
    blockNotice = true

文章阅读量

调用 Umami 的公共 API ,在文章标题下方展示该页面的浏览次数。

toml
[params.analytics.providers.umami.pageviews]
  # 说明:Umami 实例的根地址(注意不要带 /script.js)。
  host = 'https://analytics.example.com'

  # 说明:该站点的 Share ID。
  # 你需要在 Umami 面板开启“分享链接”,链接最后的随机字符串即为 ID。
  shareId = '你的-share-id'

内置交互事件

完成脚本注入后,主题会自动为常见交互上报 Umami 自定义事件,无需额外模板改造。

  • 文章阅读scroll_depthopen_outlineclose_outlineclick_outline_item
  • 内容操作copy_codecopy_permalinkclick_outbound_linkclick_tag
  • 全局导航open_mobile_menuclose_mobile_menuopen_pages_menuclick_nav_link
  • 界面偏好open_settings_panelchange_theme_modechange_glass_strengthchange_reader_widthchange_background_provider
  • 列表与附加模块load_more_postsreach_list_endclick_article_cardview_commentsclick_edit_sourceview_pageviews_widget

事件名称说明

下面这份清单对应当前主题已经实现的全部内置 Umami 自定义事件。

页面与阅读

事件名含义主要附加字段
scroll_depth阅读深度到达阈值时触发。当前阈值为 25 / 50 / 75 / 100,所以同一页面看到多次是正常现象。depth
open_outline打开移动端文章大纲浮层。heading_count
close_outline关闭移动端文章大纲浮层。
click_outline_item点击文章大纲里的标题链接。heading_idheading_level
view_pageviews_widget文章阅读量组件成功显示并拿到数据。
view_comments评论区进入视口并达到可见阈值。provider

内容操作

事件名含义主要附加字段
copy_code成功复制代码块内容。langline_count
copy_permalink成功复制文章永久链接。title
click_outbound_link点击正文中的外部链接。target_urltarget_hostlink_textlink_position
click_edit_source点击“编辑此页 / 查看源码”链接。target_urltarget_host
click_tag点击标签入口。tag

导航与列表

事件名含义主要附加字段
open_mobile_menu打开移动端菜单。position
close_mobile_menu关闭移动端菜单。position
open_pages_menu打开顶栏 Pages 下拉面板。position
click_nav_link点击主题导航链接。labeltarget_pathposition
click_article_card点击文章卡片进入详情页。target_pathtitleposition
load_more_posts无限滚动成功加载下一页内容。feedcurrent_pagenext_page
reach_list_end无限滚动到达最后一页,没有更多内容。feedpage

设置面板与偏好

事件名含义主要附加字段
open_settings_panel打开设置面板。
change_theme_mode切换主题模式(自动 / 浅色 / 深色)。mode
change_glass_strength调整亚克力强度。strength
change_reader_width调整阅读宽度。width
change_background_provider切换背景来源(URL / Upload / Pixaroa)。provider

如何理解 Umami 里的记录

  • 普通的页面路径(例如 /zh-hans/pages/affiliates/)是 Umami 默认的页面访问记录,不是主题额外定义的自定义事件。
  • Visitor from ... using ... 是 Umami 对本次访问会话的访客环境描述,表示地区、浏览器、系统和设备类型。
  • view_pageviews_widget on /... 表示页面上的阅读量组件成功显示。
  • view_comments on /... 表示评论区被滚动到可见区域。
  • 同一页连续出现多条 scroll_depth,通常表示用户依次跨过了 25%、50%、75%、100% 这些阅读深度阈值。

功能特点

  • 隐私保护:统计逻辑交由 Umami 处理,主题仅负责按需展示。
  • 自动降级:如果读者的网络或插件阻止了统计请求,阅读量项会自动隐藏,不会留下破损的图标或文字。
  • 统一上下文:事件会自动附带当前页面路径、语言与页面类型,便于在 Umami 中直接按页面维度筛选。