自定义事件
自定义事件非常适合通过在会话回放的同时记录特定于业务领域的事件来增加更多信息。OpenReplay 使用两种类型的事件:功能性事件(event)和技术性事件(issue)。所有事件都会被建立索引以便于搜索,并与会话录制同步。
功能性事件
Section titled 功能性事件功能性事件会被建立索引,使查找特定会话录制更加容易。如果它们被 OpenReplay 成功接收,就会作为筛选条件出现在 omnisearch 搜索栏中。

使用 NPM
Section titled 使用 NPM使用 event 方法来标记功能性事件,例如 order completed 或 product added。它接受 2 个参数:name(string)和 payload(任何非递归的 JS 对象)。
tracker.event('product_added', 'shoes'); // after tracker.start()
// OR
tracker.event('product_added', { type: 'shoes' });
使用 JavaScript 代码片段
Section titled 使用 JavaScript 代码片段下面是一个使用代码片段发送功能性事件的示例。
<!-- OpenReplay Tracking Code -->
<script>
var initOpts = { projectKey: "GxPpaDARdn2345fgt321" };
var startOpts = { userID: ""};
(function(A,s,a,y,e,r){
r=window.OpenReplay=[e,r,y,[s-1, e]];
s=document.createElement('script');s.src=A;s.async=!a;
...
})("//static.openreplay.com/latest/openreplay.js", 1, 0, initOpts, startOpts);
</script>
...
__OPENREPLAY__.event('product_added', 'shoes'); // send a functional event later in your code
// OR
__OPENREPLAY__.event('product_added', { type: 'shoes' });
...
技术性事件
Section titled 技术性事件技术性事件会在会话回放中 DevTools 的 Events 标签页下显示,并作为注释出现在播放过程中。它们还会在 Funnels 中被纳入考量,用于将转化率下降与技术问题关联起来。

使用 NPM
Section titled 使用 NPMissue 用于发送技术性事件,例如可能在你的技术栈或其他下游系统中发生的错误。issue 接受 2 个参数:name(string)和 payload(非递归的 JS 对象)。
tracker.issue('payment_error', { code: 500, context: 42 }); // after tracker.start()
使用 JavaScript 代码片段
Section titled 使用 JavaScript 代码片段下面是一个使用代码片段发送技术性事件的示例。
<!-- OpenReplay Tracking Code -->
<script>
var initOpts = { projectKey: "GxPpaDARdn2345fgt321" };
var startOpts = { userID: "" };
(function(A,s,a,y,e,r){
r=window.OpenReplay=[e,r,y,[s-1, e]];
s=document.createElement('script');s.src=A;s.async=!a;
...
})("//static.openreplay.com/latest/openreplay.js", 1, 0, initOpts, startOpts);
</script>
...
__OPENREPLAY__.issue('payment_error', {code: 500, context: 42}); // send a technical event (issue) later in your code
...
充分利用事件
Section titled 充分利用事件我们的 SDK 支持更深入的事件管理,要了解更多内容,请查看数据与事件管理章节。
使用 iOS 应用
Section titled 使用 iOS 应用import ORTracker
ORTracker.shared.event(name: String, payload: Encodable?)
如果你想要一个使用自定义事件的实际示例,请查看我们这里的详细教程。