追踪器功能
Umami 追踪器提供了一个函数,如果你想要对追踪进行更多控制,可以在你的网站上调用该函数。默认情况下,一切数据都会自动收集,但你可以通过设置 data-auto-track="false" 来禁用自动收集,并自行发送数据。详见追踪器配置。
函数
// 追踪当前页面
umami.track();
// 自定义负载
umami.track(payload: object);
// 自定义事件
umami.track(event_name: string);
// 带数据的自定义事件
umami.track(event_name: string, data: object);
// 为当前会话分配 ID
umami.identify(unique_id: string);
// 会话数据
umami.identify(unique_id: string, data: object);
// 无 ID 的会话数据
umami.identify(data: object);页面浏览量
追踪页面浏览。
umami.track();默认情况下,追踪器会自动收集以下属性:
| Property | Description |
|---|---|
hostname | 服务器主机名 |
language | 浏览器语言 |
referrer | 页面来源 |
screen | 屏幕尺寸(例如 1920x1080) |
title | 页面标题 |
url | 页面 URL |
website | 网站 ID(必需) |
如果你希望发送自定义负载,可以向函数传入一个对象:
umami.track({ website: 'e676c9b4-11e4-4ef1-a4d7-87001773e9f2', url: '/home', title: '主页' });上述代码仅会发送 website、url 和 title 这几个属性。如果想包含已有属性,可以传入一个函数:
umami.track(props => ({ ...props, url: '/home', title: '主页' }));事件
追踪一个具有指定名称的事件。
umami.track('signup-button');事件数据
追踪一个带有动态数据的事件。
umami.track('signup-button', { name: 'newsletter', id: 123 });追踪事件时,默认属性会包含在负载中。相当于执行了:
umami.track(props => ({
...props,
name: 'signup-button',
data: {
name: 'newsletter',
id: 123,
},
}));事件数据限制
事件数据可以包含任意 JSON 数据。为了保证性能,制定了一些规则:
| Data Type | Limit |
|---|---|
| Numbers | 最大精度为 4 位。 |
| Strings | 最大长度为 500。 |
| Arrays | 转换为字符串后,最大长度为 500。 |
| Objects | 最多 50 个属性。数组按 1 个属性计算。 |
会话
传入自己的 ID 来标识用户。
umami.identify('unique_id');会话数据
保存当前会话的数据。
umami.identify('unique_id', { name: 'Bob', email: 'bob@aol.com' });如果不提供唯一 ID,只传入一个 JSON 对象:
umami.identify({ name: 'Bob', email: 'bob@aol.com' });