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');
这应该连接到任何您产品使用的大门访问库/工具.