Skip to content

设置网站分析

与网络上提供的其他服务一样,了解您的项目文档实际如何使用可能是成功的关键因素。MkDocs的Material主题原生集成了Google Analytics,并提供可自定义的cookie同意反馈小部件

配置

Google Analytics

7.1.8

MkDocs的Material主题原生集成了Google Analytics 41。如果您已经设置了Google Analytics并拥有一个属性,请通过在mkdocs.yml中添加以下行来启用它:

extra:
  analytics:
    provider: google
    property: G-XXXXXXXXXX
如何测量网站搜索使用情况?

除了页面浏览量和事件外,网站搜索也可以被跟踪,以更好地理解用户如何使用您的文档以及他们期望找到什么。为了启用网站搜索跟踪,需要执行以下步骤:

  1. 转到您的Google Analytics 管理设置
  2. 选择相应跟踪代码的属性
  3. 选择 数据流 选项卡并单击相应的URL
  4. 单击 增强测量 部分中的齿轮图标
  5. 确保 网站搜索 已启用

这个页面有帮助吗?

8.4.0

可以在每个页面底部包含一个简单的反馈小部件,鼓励用户即时反馈页面是否有帮助。请在mkdocs.yml中添加以下行:

extra:
  analytics: # (1)!
    feedback:
      title: 这个页面有帮助吗?
      ratings:
        - icon: material/emoticon-happy-outline
          name: 这个页面很有帮助
          data: 1
          note: >-
            感谢您的反馈!
        - icon: material/emoticon-sad-outline
          name: 这个页面可以改进
          data: 0
          note: >- # (2)!
            感谢您的反馈!请通过我们的<a href="..." target="_blank" rel="noopener">反馈表单</a>帮助我们改进此页面。
  1. 此功能原生集成了Google Analytics,因此providerproperty也是必需的。然而,也可以提供自定义反馈集成

  2. 您可以在用户提交反馈后显示的备注中添加任意HTML标签,例如链接到反馈表单。

titleratings两个属性都是必需的。请注意,允许定义超过两个评分,例如实现1-5星评分。由于反馈小部件将数据发送到第三方服务,因此它当然与cookie同意功能原生集成2

如何可视化收集的反馈评分?

要可视化反馈评分,您需要在Google Analytics中创建一个自定义报告,以快速显示项目文档中评分最低和最高的页面。

  1. 转到您的Google Analytics 仪表板

  2. 在左侧菜单中转到 管理 页面(底部),然后在 数据展示 卡片上选择 自定义定义

  3. 单击 自定义指标 选项卡,然后 创建自定义指标,输入以下值:

    • 指标名称:页面有帮助
    • 描述:这个页面有帮助吗?
    • 事件参数:data
    • 计量单位:标准
  4. 转到左侧菜单中的 探索 页面,创建一个新的 空白探索

  5. 按如下方式配置报告:

    • 维度:添加 事件名称页面位置
    • 指标:添加 事件计数页面有帮助
      (在步骤3中创建的自定义指标)
    • 行:页面位置
    • 值:拖入 事件计数页面有帮助
    • 过滤器:添加一个新过滤器,条件为
      事件名称 / 完全匹配 / feedback

数据可用性延迟

报告可能需要24小时或更长时间才能开始显示数据。

现在,在您保存报告并收集了一些反馈评分后,您将拥有所有页面的评分总数和每页的平均评分列表。这应该帮助您识别需要改进的页面:

Google Analytics 4不支持平均值

据我们所知,Google Analytics 4目前没有允许定义自定义计算指标以计算页面平均评分的功能。请参见#5740

反馈报告

以下属性适用于每个评分:

icon


此属性必须指向有效的图标路径,引用[主题中捆绑的任何图标][custom icons],否则构建将失败。一些流行的组合:

  • + material/emoticon-happy-outline + material/emoticon-sad-outline
  • + material/thumb-up-outline + material/thumb-down-outline
  • + material/heart + material/heart-broken
name


此属性的值在用户交互时显示(即键盘聚焦或鼠标悬停),解释图标背后评分的含义。

data


此属性的值作为数据值与传输到Google Analytics3(或任何自定义集成)的自定义事件一起发送。

note


此属性的值在用户选择评分后显示。它可以包含任意HTML标签,这对于请求用户通过表单提供当前页面的更详细反馈特别有用。还可以通过使用以下占位符预填充表单的URL和标题:

  • {url} – 页面URL
  • {title} – 页面标题
https://github.com/.../issues/new/?title=[反馈]+{title}+-+{url}

在此示例中,当单击链接时,用户将被重定向到您存储库的“新问题”表单,标题预填充包括当前文档的路径,例如:

[反馈] 设置网站分析 – /setup/setting-up-site-analytics/

GitHub问题的替代方案是Google表单

使用

隐藏反馈小部件

可以使用文档的前置信息hide属性隐藏反馈小部件。在Markdown文件顶部添加以下行:

---
hide:
  - feedback
---

# 页面标题
...

自定义

自定义网站分析

为了集成提供基于JavaScript的跟踪解决方案的其他分析服务提供商,只需按照主题扩展的指南操作,并在overrides文件夹中创建一个新的部分。部分的名称用于通过mkdocs.yml配置自定义集成:

<script>
  /* 在此添加自定义分析集成,例如 */
  var property = "{{ config.extra.analytics.property }}" // (1)!

  /* 等待页面加载和应用程序挂载 */
  document.addEventListener("DOMContentLoaded", function() {
    location$.subscribe(function(url) {
      /* 在此添加自定义页面事件跟踪 */ // (2)!
    })
  })
</script>
  1. 作为示例,此变量接收在mkdocs.yml中设置的值,对于property"foobar"
  2. 如果您使用即时加载,可以使用location$可观察对象来监听导航事件,该事件始终发出当前的URL
extra:
  analytics:
    provider: custom
    property: foobar # (1)!
  1. 您可以添加任意键值组合来配置自定义集成。这在您跨多个存储库共享自定义集成时特别有用。

自定义网站反馈

自定义反馈小部件集成只需处理用户与反馈小部件交互时生成的事件,借助一些额外的JavaScript

document$.subscribe(function() {
  var feedback = document.forms.feedback
  if (typeof feedback === "undefined") return

  feedback.hidden = false // (1)!

  feedback.addEventListener("submit", function(ev) {
    ev.preventDefault()

    var page = document.location.pathname // (2)!
    var data = ev.submitter.getAttribute("data-md-value")

    console.log(page, data) // (3)!

    feedback.firstElementChild.disabled = true // (4)!

    var note = feedback.querySelector(
      ".md-feedback__note [data-md-value='" + data + "']"
    )
    if (note)
      note.hidden = false // (5)!
  })
})
  1. 反馈小部件默认是隐藏的,以便在用户关闭JavaScript时不会出现。因此,需要在这里将其打开。

  2. 获取页面和反馈值。

  3. 用发送数据到您的分析提供商的代码替换此部分。

  4. 提交后禁用表单。

  5. 显示配置的备注。显示哪一条取决于用户反馈。

extra_javascript:
  - javascripts/feedback.js

 


  1. 在Material for MkDocs 9.2.0之前,也支持Universal Analytics。然而,由于Universal Analytics已被淘汰,此集成在9.2.0中被移除。 

  2. 如果用户不接受analytics cookie,则不会显示反馈小部件。 

  3. 请注意,对于Google Analytics,数据值必须是整数。