@atlaskit/insm

中文文档
3.0.98发布于 2026/11/07Apache-2.0TypeScriptESM + CJS近 30 天下载 3万

INSM 工具化措施

中文使用文档
文档目录13 节
  1. 何为内涵措施
  2. 常见的内相测量任务
  3. 装入"重活"
  4. 向会议提供补充资料
  5. 获取当前 insm 会话细节
  6. 使用特性时标记
  7. 如何测量仪器内光度
  8. 先决条件
  9. 安装
  10. 初始化
  11. 开始页面会话
  12. 停止页面会话的互动跟踪
  13. 跟踪大门进入

insm——互动会话测量

一个轻量级,基于会话的方法,用来衡量你的经验对用户的交互感受. 内 总结用户花在页面或特定视图上的交互质量,并发出 当会话结束时,单个分析事件.

何为内涵措施

  • 会议期间用户活动期间的互动质量
  • 活动时间(当用户互动时)和整个会话时间
  • 排除明确标记的繁重/预期工作
  • 单一会话补全活动,包含汇总统计和可选自定义属性

常见的内相测量任务

装入"重活"

已知造成相互作用回归的繁重任务可明确选择退出 通过明确标出重活期进行互动测量.

谨慎使用——最好是减少繁重工作的费用,而不是选择不进行计量。 作为将军 根据规则,只有初始化和非核心行动才应标出重度.

"重活"时期的例子有:

  • 页面初始化
    • 当第一次加载一页时——经常会触发大量的工作来收集、安排和 向用户显示页面内容
  • 粘贴处理
    • 用于编辑页面粘贴处理器 — 粘贴处理器目前已知在计算中 昂贵(对于大型剪贴板项目,可以锁定UI数秒). 鉴于这是非 核心经验——将这一点排除在互动性监测之外,确保我们掌握关于 核心经验.
insm.session.startHeavyTask('paste-handler');
// ... perform paste work ...
insm.session.endHeavyTask('paste-handler');

注意: 用于跟踪页面初始化 - 如果您使用特殊 PageLoad 键,持续时间为 跟踪了由此产生的会议活动.

向会议提供补充资料

额外会话信息可通过 setProperty 或 addProperties api. (英语).

财产

insm.session.setProperty(key: string, value: string | number | boolean): void

这个 api 是添加Properties 的选项, 用于您有热路径的情景 整个会议都会不断开火.

将使用给定密钥的最后一个值,如果从添加Properties中找到匹配的密钥,则 添加属性值.

添加属性

type ValidProperty = string | number | boolean;
insm.session.addProperties(
  propsOrFactory: Record<string, ValidProperty> | (() => Record<string, ValidProperty>)
): void

此 api 需要静态的单级密钥值对象, 或者调回返回相同和 将在会场结束时进行评估.

结束会话时,通过此 api 接收的所有属性将被合并, 顺序为由此生成的 insm 事件属性; 最后写入获胜 .

在会话结束时评价回调值 .

举例来说

insm.session.addProperties({ one: 1, two: 2 });
insm.session.addProperties(() => ({ one: 'one' }));
insm.session.addProperties({ three: 3 });

由此产生的新增属性为

{ one: 'one', two: 2, three: 3 }

获取当前 insm 会话细节

insm.session.details;

这可以用来根据个人经验进行闸门改变.

没错.

if (insm.session.details.experienceKey === 'cc.edit-page' && gateCheck()) {
    insm.session.addProperties(() => ({
        /*potentially large or computationally large property bag */
    }));
}

使用特性时标记

insm.session.startFeature(featureName: string): void
insm.session.endFeature(featureName: string): void
useEffect(() => {
    insm.session.startFeature('comment notification');
    return () => {
        insm.session.endFeature('comment notification');
    };
}, []);

导致的内幕事件;

  • 长相动画框上会发现任何活性特征
  • 最慢的会话将具有当前会话中使用的任何特性 他们

如何测量仪器内光度

先决条件

您的产品必须安装 Insm 库 —— insm 具有与 UFO 工具相同的先决条件 https://developer.atlassian.com/plateform/ufo/react-ufo/react-ufo/getting-started/#prequisites 互联网档案馆的存檔,存档日期2014-12-21。 。 。 .

安装

yarn add @atlaskit/insm

初始化

要启动仪表, 可通过引用功能和通过配置对象进行隐藏 根据仪器要求确定.

import { init } from '@atlaskit/insm';

export function initialiseINSM(config) {
    /* logic to get/initialise your app's analytics client */
    init(config);
}

在应用程序中尽早挂载时间表(理想情况下,在应用程序挂载之前), 通过 Evolution 函数将 Insm 客户端关闭.

重要: 隐含将只追踪明确允许的交互活动——这些经验 必须在 config 通过了.

{
    getAnalyticsWebClient,
    experiences: {
        ['experience key']: {enabled: true}
    }
}

如果缺少或未启用一个经验密钥, 将不会发布会话事件 .

开始页面会话

在路由更改/ 启动时, 请调用 insm start api .

insm.start(experienceKey, {
    contentId,
    initial,
});

注:称此将结束任何现有经验(除非经验关键和属性) 匹配 - 在这种情况下不会发生会话变化.

启动后更新页面会话体验Key

在一些情景中,您可能需要更新运行的会话体验键,在它开始后, 在这种情况下,你可以使用 overrideExperienceKey。 。 。 .

如果有运行经验,它将更新运行经验名.

如果没有运行经验(即如果原始体验Key没有被白列),它 将使用上次开始的经验开始新的体验 Properties.

insm.overrideExperienceKey('new-key');

命名指导

选择一个 experienceKey 反映您想要分析的产品和内容类型.

实例: cc.view-page, (中文(简体) ), cc.edit-page, (中文(简体) ), cc.live-doc

停止页面会话的互动跟踪

结束一个页面会话交互跟踪由其中之一完成;

  • 开始一个新的会话.
  • 或当标签会话结束时(如关闭标签,刷新页面)

在一些假想中(即当一个页面错误边界被击中时),您会想要提前退出。 这是 实现方式如下.

insm.stopEarly(reasonKey: string, description: string);

提前关闭的会话可按其结束细节识别 "endDetails": { stoppedBy: "early-stop", reasonKey, description }。 。 。 .

说明: 一旦停止,会话即告结束 addProperties 处理者会 此时此刻.

跟踪大门进入

在会话中评价或更改一个门时拨打闸机.

insm.gateAccess('gate key', 'gate rule');

这应该连接到任何您产品使用的大门访问库/工具.

版本与发布记录

@atlaskit/insm 共发布 258 个版本,首次发布于 2025/08/13;过去 12 个月发布了 250 个版本。

版本发布日期距今
3.0.98latest2026/11/07今天
3.0.972026/11/061 天前
3.0.962026/11/061 天前
3.0.952026/11/061 天前
3.0.942026/11/062 天前
3.0.932026/11/052 天前

关于 @atlaskit/insm 的常见问题

@atlaskit/insm 是什么?

INSM 工具化措施

如何安装 @atlaskit/insm?

在项目目录运行 npm install @atlaskit/insm,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^18.2.0 || ^19.2.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@atlaskit/insm 支持 TypeScript 吗?

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

@atlaskit/insm 支持 ESM 还是 CommonJS?

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

@atlaskit/insm 可以商用吗?

@atlaskit/insm 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@atlaskit/insm 的下载量有多少?

根据 npm 官方下载统计,@atlaskit/insm 在 2026/10/07 – 2026/11/05 这 30 天内被下载 29,653 次,日均约 988 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@atlaskit/insm 还在维护吗?

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