@amplitude/plugin-session-replay-browser

中文文档
1.36.7发布于 2026/11/07MITTypeScriptESM + CJS构建来源已验证近 30 天下载 450.9万
中文使用文档
文档目录9 节
  1. 安装
  2. 使用量
  3. 1. 进口宽度包
  4. 2. 辅助会话重放插件
  5. 3. 安装插件到振幅 SDK
  6. 4. 开始和停止录音(可选)
  7. 隐私
  8. 调试
  9. 本地开发时使用调试模式


@ amplitude/plugin-session- replay-浏览器

用于会话重放的官方浏览器 SDK 插件

安装

该软件包发布在国家预防机制登记册上,可用npm和纱线安装.

# npm
npm install @amplitude/plugin-session-replay-browser

# yarn
yarn add @amplitude/plugin-session-replay-browser

使用量

这个插件在Amplitude浏览器SDK上方工作,并在内置特性中添加会话回放功能. 要使用此插件, 您需要安装 @amplitude/analytics-browser 版本 v1.9.1 或后会.

此插件要求启用会话的默认跟踪 。 如果配置中未启用对会话的默认跟踪,插件会自动启用.

1. 进口宽度包

  • @amplitude/analytics-browser
  • @amplitude/plugin-session-replay-browser
import * as amplitude from '@amplitude/analytics-browser';
import { sessionReplayPlugin } from '@amplitude/plugin-session-replay-browser';

2. 辅助会话重放插件

插件必须通过下列代码在振幅实例中注册 。 插件接受一个可选参数,即 Object 根据您的使用大小写配置插件.

amplitude.init(API_KEY);
const sessionReplayTracking = sessionReplayPlugin({
  sampleRate: undefined
});

选项

名称类型默认需求说明
sampleRatenumberundefined对使用此选项来控制将选择多少会话进行回放收藏 。 将收集一个选定的会话进行回放,而未选择的会话将不进行回放.

数字应该是0到1之间的小数 0.01,代表您希望随机选择重放收藏的会话的分数。 在大量会议上, 0.01 将选择 1% 这些届会.
privacyConfigobjectundefined没有支持高级口罩配置与 CSS 选择器.
forceSessionTrackingbooleanfalse没有如果启用此功能, 我们将迫使浏览器 SDK 也发送开始和结束会话事件 .
debugModebooleanfalse没有添加额外的调试事件属性来帮助调试仪器问题(如不匹配的app). 只推荐调试初始设置,不推荐生产.
configServerUrlstring没有undefined指定获取远程配置的端点 URL。 如果提供,它会覆盖默认服务器区配置.
trackServerUrlstring没有undefined指定发送会话重放数据的端点 URL。 如果提供,它会覆盖默认服务器区配置.
shouldInlineStylesheetboolean没有true如果样式表被内化,样式表的内容将被存储. 在回放时,将使用所存储的样式表,而不是试图远程取取. 这可以防止由于缺少样式表而出现被损坏的回放. 注:内置样式表可能不会在所有情况下都有效。 如果这是 undefined 样式表将被内置.
inlineImagesboolean没有false当真实时, 图像源被内入为 rrweb 快照中的数据 URL, 因此重放不依赖于在播放时获取远程图像资产 。 增加快照有效载荷大小。 传到rrweb's inlineImages 记录选项.
storeTypestring没有idb指定如何存储重放事件. idb 当所有事件在抓取时无法发送时,使用 IndexedDB 来持续重放事件. memory 存储重放事件只存在于内存中,指在页面关闭时事件会丢失. 如果索引DB不可用,系统会回到 memory。 。 。 .
performanceConfig.enabledboolean没有true如果启用, 事件压缩将会被推迟到浏览器闲置期间进行.
performanceConfig.timeoutnumber没有undefined可选超时( 毫秒) requestIdleCallback API (英语). 如果指定,这个值将用来设定浏览器在执行被推迟的压缩任务之前等待的最大时间,即使浏览器没有闲置.
performanceConfig.mergeMutationsboolean没有false如果启用,连续突变事件在压缩前被合并为单个事件. 这样可以减少存储的事件数和内线的串联 style 在同一节点上突变(上行-write-wins),不改变重放语义.
experimental.useWebWorkerboolean没有false如果SDK应该使用网络工人来压缩回放事件.

3. 安装插件到振幅 SDK

amplitude.add(sessionReplayTracking);

4. 开始和停止录音(可选)

插件实例曝光 start() 财务报告和审定财务报表 stop() 这样您就可以暂停并恢复抓取而不移除插件 。 取样、确定目标和选择退出仍然适用.

const sessionReplayTracking = sessionReplayPlugin({
  sampleRate: 1,
});
amplitude.add(sessionReplayTracking);

// Pause capture, for example on a sensitive screen
sessionReplayTracking.stop();

// Resume capture
await sessionReplayTracking.start();

隐私

默认情况下,会话重放会掩盖所有输入,这意味着输入中的文本会以星号重放的形式出现: ***。您可能根据您的使用情况需要更具体的遮盖控制,所以我们提供以下控制:

1. 解密投入

在您的应用程序代码中, 添加类 .amp-unmask 对任意 投入 你想在重播中解开他的短信 在会话回放中,可以读取输入此类输入的准确文本,文本不会被转换为星号.

2. 面具非输入要素

在您的应用程序代码中, 添加类 .amp-mask 对任意 非输入元素 你希望从重播中掩盖出他的短信 元素中的文本,以及它的孩子,都会被转换为星号.

3. 块式非文本元素

在您的应用程序代码中, 添加类 .amp-block 到任何您想要从重播集中屏蔽的元素。 该元素会作为具有相同维度的占位符出现在回放中.

4. CSS选取器的块状元素.

在SDK初始化代码中,可以配置SDK来以基于CSS选择器来阻断元素.

const sessionReplayTracking = sessionReplayPlugin({
  sampleRate: 0.01,
  privacyConfig: {
      blockSelector: ['.ignoreClass', '#ignoreId']
  }
});

调试

本地开发时使用调试模式

由于会话重放插件只在页面焦点时记录并标记事件,这在本地开发浏览器控制台打开时有时可能会出问题. 如果你对重播有意见, 尝试转动设置 debugMode:true 看看这是否有助于解决问题.

版本与发布记录

@amplitude/plugin-session-replay-browser 共发布 329 个版本,首次发布于 2023/06/28;过去 12 个月发布了 138 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.36.7latest2026/11/071 天前
1.36.7-sr-bfcache-pageshow-snapshot.02026/11/052 天前
1.36.62026/10/317 天前
1.36.52026/10/299 天前
1.36.6-video-analytics-8.02026/10/2811 天前
1.36.6-video-analytics-7.02026/10/2712 天前

其他发布通道:beta → 0.6.9,srtargeting → 1.7.0-srtargeting.2,next → 1.13.2-beta.0,networkautocapture → 1.16.1-networkautocapture.0,fixtypedefinition → 1.16.1-fixtypedefinition.0,networkautocapture-1 → 1.16.1-networkautocapture-1.0。

关于 @amplitude/plugin-session-replay-browser 的常见问题

如何安装 @amplitude/plugin-session-replay-browser?

在项目目录运行 npm install @amplitude/plugin-session-replay-browser,或使用 pnpm add / yarn add / bun add。

@amplitude/plugin-session-replay-browser 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@amplitude/plugin-session-replay-browser 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@amplitude/plugin-session-replay-browser 可以商用吗?

@amplitude/plugin-session-replay-browser 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@amplitude/plugin-session-replay-browser 的下载量有多少?

根据 npm 官方下载统计,@amplitude/plugin-session-replay-browser 在 2026/10/06 – 2026/11/04 这 30 天内被下载 4,509,132 次,日均约 150,304 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@amplitude/plugin-session-replay-browser 还在维护吗?

最新版本 1.36.7 发布于 2026/11/07(1 天前);至今共发布 329 个版本,其中过去 12 个月发布了 138 个;首次发布于 2023/06/28。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。