SDK 接入

SDK API 参考

查看 track、captureError、getOverview 和 version 的使用场景、返回值与示例数据。

SDK 加载后会暴露 window.TraceVista。这页只列稳定公开 API;未列出的 Client 属性和内部方法不属于公开契约,后续版本可能变更。

track()

记录自定义业务事件。页面访问、性能和错误会自动采集;track() 只用于产品自身关心的业务行为。

track(
    eventName: string,
    data?: Record<string, unknown>,
    options?: { path?: string }
): Promise<boolean>
const accepted = await window.TraceVista.track('plan_selected', {
    plan: 'professional',
    placement: 'pricing_page'
})
  • 事件名不能为空,最长 100 个字符。
  • 自定义数据会进行安全序列化,并自动附加 _tracevista 上下文。
  • 返回 true 表示接口接受本次上报。

什么时候会用到:

  • 记录转化漏斗:注册按钮点击、套餐选择、支付结果。
  • 记录关键业务动作:创建项目、生成 KEY、提交表单。
  • 用 options.path 把事件归到指定业务页面。

上报后的 data 大致类似:

{
    "plan": "professional",
    "placement": "pricing_page",
    "_tracevista": {
        "visitor_id": "v_...",
        "session_id": "s_...",
        "page_view_id": "pv_...",
        "url": "https://example.com/pricing",
        "path": "/pricing"
    }
}

captureError()

主动捕获已经被业务代码处理的异常。全局运行时错误、Promise rejection、资源错误和接口错误会自动采集;captureError() 用来补充那些已经被业务代码 catch 住、不会再冒泡的错误。

captureError(
    error: Error | string | unknown,
    extra?: Record<string, unknown>
): Promise<boolean>
await window.TraceVista.captureError(error, {
    module: 'profile',
    operation: 'save_avatar'
})

什么时候会用到:

  • try/catch 已经兜底了错误,但仍希望在后台看到它。
  • 第三方 SDK、支付、登录、上传等关键链路失败,需要带上业务上下文。
  • 业务把错误转换成 toast 或 fallback UI 后,需要保留排查线索。

上报的错误 data 大致类似:

{
    "name": "Error",
    "stack": "Error: save failed\n    at ...",
    "context": {
        "visitor_id": "v_...",
        "session_id": "s_...",
        "page_view_id": "pv_...",
        "url": "https://example.com/profile",
        "path": "/profile"
    },
    "breadcrumbs": [
        {
            "type": "click",
            "at": "2026-07-30T08:12:30.000Z",
            "data": {
                "element": "button#save"
            }
        }
    ],
    "extra": {
        "module": "profile",
        "operation": "save_avatar"
    }
}

getOverview()

查询网站公开访问概览,包括统计起始时间、今日和累计 PV/UV;查询失败时返回 null。

getOverview(): Promise<object | null>
const overview = await window.TraceVista.getOverview()

什么时候会用到:

  • 在被监控网站前台展示轻量访问统计。
  • 做公开状态页或自检面板,只需要简单 PV/UV,不需要登录管理端。
  • 接入完成后快速确认项目 KEY 对应的统计接口可读。

返回数据大致类似:

{
    "data": {
        "started_at": "2026-07-25 03:21:09.123",
        "today": {
            "pv": 36,
            "uv": 12
        },
        "total": {
            "pv": 1280,
            "uv": 342
        }
    }
}

完整分析、错误记录、性能详情和配额信息请使用管理端,不建议在前台页面直接承载这些能力。

version

当前 SDK 构建版本字符串:

console.log(window.TraceVista.version)

什么时候会用到:

  • 排查线上问题时确认用户页面加载的是哪个 SDK 版本。
  • 客服或错误记录里需要附带 SDK 版本,方便判断是否已升级。
  • 对比 CDN、缓存和管理端静态文件是否同步。

示例:

1.0.0