追踪器功能

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();

默认情况下,追踪器会自动收集以下属性:

  • hostname:服务器主机名
  • language:浏览器语言
  • referrer:页面来源
  • screen:屏幕尺寸(例如 1920x1080)
  • title:页面标题
  • url:页面 URL
  • website:网站 ID(必填)

如果你希望发送自定义负载,可以向函数传入一个对象:

umami.track({ website: 'e676c9b4-11e4-4ef1-a4d7-87001773e9f2', url: '/home', title: '主页' });

上述代码仅会发送 websiteurltitle 这几个属性。如果想包含已有属性,可以传入一个函数:

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 数据。为了保证性能,制定了一些规则:

  • 数字的最大精度为 4 位。
  • 字符串最大长度为 500。
  • 数组会被转换成字符串(最大长度同样为 500)。
  • 对象最多包含 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' });