事件

为 OpenReplay 追踪器分析事件定义和管理超级属性。

事件

此模块让你能够管理事件属性——即持久化的键/值对,它们会自动附加到每个被追踪的事件上。

超级属性存储在本地,并在你追踪事件时合并到每个事件的有效负载中。

要了解有关在 OpenReplay 界面中管理事件的更多信息,请访问 Data Management

可用于:

tracker.analytics.events

超级属性存储在 SDK 中,并在 properties 下合并到每个事件中。

事件属性仅针对一次 track/sendEvent 调用传递,并不会被保存为超级属性。

这些键为保留键,无法通过超级属性辅助方法创建/移除:

  • properties
  • token
  • timestamp
// 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 单个事件的属性(不持久化)
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", 
})

合并顺序:

  • 超级属性首先被添加
  • 单个事件的属性随后合并在其上

因此,在键冲突时,单个事件的属性优先。

创建或覆盖超级属性。

// object form
tracker.analytics.events.setProperty({
  app_version: "1.42.0",
  region: "eu",
})

// key/value form
tracker.analytics.events.setProperty("build_sha", "3f2c9a1")
  • 默认/内部键(由 SDK 追踪)会被忽略,不会作为超级属性添加。
  • 仅当确实有内容发生变化时,更改才会保存到本地。

仅在超级属性尚不存在时创建它们。

tracker.analytics.events.setPropertiesOnce({
  first_seen_at: Date.now(),
  signup_source: "docs",
})

// key/value form
tracker.analytics.events.setPropertiesOnce("initial_referrer", document.referrer)
  • 仅当键缺失时才会设置属性。
  • 保留键(propertiestokentimestamp)会被忽略。

移除一个或多个超级属性。

// single
tracker.analytics.events.unsetProperties("region")

// multiple
tracker.analytics.events.unsetProperties(["app_version", "build_sha"])
  • 无法移除保留键。
  • 移除操作会被持久化。

清除所有超级属性。

tracker.analytics.events.reset()

默认情况下,事件会被排队/批量处理。你可以请求立即发送某个事件:

tracker.analytics.events.sendEvent(
  "Checkout Completed",
  { value: 199, currency: "EUR" },
  { send_immediately: true },
)

所有方法都提供了兼容层,以方便你沿用熟悉的用法:

tracker.analytics.events.register       // setProperty
tracker.analytics.events.register_once  // setPropertiesOnce
tracker.analytics.events.unregister     // unsetProperties
tracker.analytics.events.track          // sendEvent

如果你遇到任何问题,请加入我们的 Slack,或查看我们的论坛,从我们的社区获得帮助。