事件
此模块让你能够管理事件和属性——即持久化的键/值对,它们会自动附加到每个被追踪的事件上。
超级属性存储在本地,并在你追踪事件时合并到每个事件的有效负载中。
要了解有关在 OpenReplay 界面中管理事件的更多信息,请访问 Data Management。
可用于:
tracker.analytics.events
超级属性存储在 SDK 中,并在 properties 下合并到每个事件中。
事件属性仅针对一次 track/sendEvent 调用传递,并不会被保存为超级属性。
根据所用的辅助方法不同,会拒绝两组不同的键:
默认属性——由 SDK 自身收集,并随每个事件一起发送。setProperty 会静默跳过它们,因此你无法用超级属性覆盖它们:
os, os_version, browser, browser_version, platform, screen_height, screen_width, initial_referrer, utm_source, utm_medium, utm_campaign, user_id, distinct_id, sdk_edition, sdk_version, timezone, search_engine
有效负载键——properties、token 和 timestamp。它们是事件封装结构(envelope)的一部分,因此 setPropertiesOnce 和 unsetProperties 会跳过它们。
// Track an event.
// The `properties` argument is per-event only (not persisted).
tracker.analytics.events.sendEvent(eventName: string, properties?: Record<string, any>, options?: { send_immediately: boolean })
// Create/update super properties (persisted)
tracker.analytics.events.setProperty(name: string, value: any): void
tracker.analytics.events.setProperty(properties: Record<string, any>): void
// Create super properties only if they don't exist yet (persisted)
tracker.analytics.events.setPropertiesOnce(name: string, value: any): void
tracker.analytics.events.setPropertiesOnce(properties: Record<string, any>): void
// Remove super properties (persisted)
tracker.analytics.events.unsetProperties(name: string): void
tracker.analytics.events.unsetProperties(names: string[]): void
// Clear all super properties
tracker.analytics.events.reset(): void
追踪带属性的事件
Section titled 追踪带属性的事件单个事件的属性(不持久化)
Section titled 单个事件的属性(不持久化)tracker.analytics.events.sendEvent("Button Clicked", {
button_text: "Start",
page: "home",
})
这些属性仅适用于此事件。
超级属性 + 单个事件属性(合并)
Section titled 超级属性 + 单个事件属性(合并)当你设置超级属性时,它们会自动包含在每个事件中,然后与单个事件的属性合并:
tracker.analytics.events.setProperty({
app_version: "1.42.0",
env: "prod",
})
tracker.analytics.events.sendEvent("Signup Started", {
// per-event, can override a super property with the same key
plan: "pro",
})
合并顺序:
- 超级属性首先被添加
- 单个事件的属性随后合并在其上
因此,在键冲突时,单个事件的属性优先。
setProperty
Section titled setProperty创建或覆盖超级属性。
// object form
tracker.analytics.events.setProperty({
app_version: "1.42.0",
region: "eu",
})
// key/value form
tracker.analytics.events.setProperty("build_sha", "3f2c9a1")
注意事项:
Section titled 注意事项:- SDK 收集的默认属性会被忽略,不会作为超级属性添加。
- 当
value为undefined时,键/值形式的调用会被忽略;如需存储空值,请传入null。 - 仅当确实有内容发生变化时,更改才会保存到本地。
setPropertiesOnce
Section titled setPropertiesOnce仅在超级属性尚不存在时创建它们。
tracker.analytics.events.setPropertiesOnce({
first_seen_at: Date.now(),
signup_source: "docs",
})
// key/value form
tracker.analytics.events.setPropertiesOnce("initial_referrer", document.referrer)
注意事项:
Section titled 注意事项:- 仅当键缺失时才会设置属性。
- 保留键(
properties、token、timestamp)会被忽略。
unsetProperties
Section titled unsetProperties移除一个或多个超级属性。
// single
tracker.analytics.events.unsetProperties("region")
// multiple
tracker.analytics.events.unsetProperties(["app_version", "build_sha"])
注意事项:
Section titled 注意事项:- 无法移除保留键。
- 移除操作会被持久化。
reset
Section titled reset清除所有超级属性。
tracker.analytics.events.reset()
默认情况下,事件会被排队/批量处理。你可以请求立即发送某个事件:
tracker.analytics.events.sendEvent(
"Checkout Completed",
{ value: 199, currency: "EUR" },
{ send_immediately: true },
)
与 Mixpanel 兼容的别名
Section titled 与 Mixpanel 兼容的别名所有方法都提供了兼容层,以方便你沿用熟悉的用法:
tracker.analytics.events.register // setProperty
tracker.analytics.events.register_once // setPropertiesOnce
tracker.analytics.events.unregister // unsetProperties
tracker.analytics.events.track // sendEvent