Umami 事件追踪
这是一份接入 Umami 事件追踪、确认客户端脚本正确加载的速查笔记。
前提条件
首先,页面上必须有 Umami 的 script 标签,后续功能才能工作:
<script
defer
src="https://your-umami-instance.com/script.js"
data-website-id="your-website-id"
></script>
src:你的 Umami 实例 URL,可以是自托管实例或 Umami Cloud。data-website-id:Umami 仪表盘中该网站的唯一 ID。
把它放到页面上后,window.umami 就会自动注入。
追踪按钮点击
方式 1:JavaScript(window.umami.track)
window.umami.track('event-name', { optional: 'payload' });
按钮示例:
<button onClick={() => window.umami.track('signup-clicked', { plan: 'pro' })}>
Sign Up
</button>
第一个参数是事件名称,会显示在 Umami 仪表盘中。第二个参数是可选的属性对象,用来携带自定义数据。
方式 2:Data 属性(无需 JS)
<button data-umami-event="signup-clicked">Sign Up</button>
可以用额外的属性附带更多信息:
<button
data-umami-event="signup-clicked"
data-umami-event-plan="pro"
data-umami-event-location="hero"
>
Sign Up
</button>
点击时,Umami 脚本会自动读取这些属性,无需 onClick 处理函数。这很适合静态 HTML,也适合不想把追踪代码放进组件逻辑的情况。
确认 window.umami 存在
在浏览器控制台中:
window.umami
// Should log an object with track and identify methods
typeof window.umami !== 'undefined'
// true if loaded
做一次简单的功能测试。把下面这段粘贴到控制台,然后查看 Umami 仪表盘中的 Events:
window.umami?.track('test-event')
在代码中加保护
通常用可选链就够了:
window.umami?.track('button-clicked');
需要时也可以显式判断:
if (typeof window.umami !== 'undefined') {
window.umami.track('button-clicked');
}
如果脚本位于 <head> 中,并在你的 JS 执行前加载完毕,它应该已经可用。可选链主要是作为一道保险。