@mijadesign/mijia-track-h5
v1.0.1-beta
Published
米加埋点SDK——h5
Keywords
Readme
米加埋点SDK
SDK
介绍
集成
- Taro 框架
Track('init', '1', {
version: appVersion,
serverUrl: '',
taro: 1,
env: 'development',
debug: true,
getPageConfig: (page: any = {}) => {
const { path, query } = page;
return {
pageId,
pageViewDefalt: true
};
},
});初始化
初始化参数
{
// 是否开启数据采集
trackEnable: { type: 'boolean', default: true },
// 是否开启调试模式
debug: { type: 'boolean', default: false },
// 数据上报域名
serverUrl: { type: 'string', default: '' },
// 请求超时时长
requestTimeout: { type: 'number', default: 5000 },
// 上报间隔(1秒)设置发送间隔小于0或者大于3秒的都认为不合法,程序自动改回默认值
requestInterval: { type: 'number', default: 1000 },
// 应用版本
version: { type: 'string', default: '1.0.0' },
// 应用环境
env: { type: 'string', default: '' },
// getPageConfig 获取页面的id
// 是否开启事件去重(防止重复埋点)
enableEventDedupe: { type: 'boolean', default: true },
// 事件去重时间间隔(毫秒)
eventDedupeInterval: { type: 'number', default: 1000 },
// H5事件防抖延迟(毫秒)
h5EventDebounceDelay: { type: 'number', default: 300 }
getPageConfig: { type: 'function', default: () => { } }
// taro框架实例 暂时没用 预留字段
taro: { type: ['object', 'module'], default: false },
// 是否开启无埋点 暂时没用 预留字段
autotrack: { type: 'boolean', default: true },
// source 来源 暂时没用 预留字段 src字段 SDK已自动采集
source: { type: 'string', default: '' },
}H5页面焦点事件处理
问题描述
在H5页面中,当页面获取焦点(focus)和失去焦点(blur)时,可能会触发多次埋点请求,导致数据重复上报。
解决方案
SDK提供了多层防护机制来解决这个问题:
- 事件去重机制:在请求层面对相同类型的事件进行去重,防止短时间内重复发送相同事件
- 防抖处理:对H5的focus/blur事件添加防抖延迟,避免快速重复触发
- 页面可见性API:使用更准确的
visibilitychange事件作为补充
配置选项
Track('init', 'your-app-id', {
// 是否开启事件去重(推荐开启)
enableEventDedupe: true,
// 事件去重时间间隔,单位毫秒(默认1000ms)
eventDedupeInterval: 1000,
// H5事件防抖延迟,单位毫秒(默认300ms)
h5EventDebounceDelay: 300,
// 其他配置...
});运行时调整
你也可以在运行时调整这些配置:
// 关闭事件去重
$mjt('setOption', 'enableEventDedupe', false);
// 调整去重间隔为2秒
$mjt('setOption', 'eventDedupeInterval', 2000);
// 调整防抖延迟为500ms
$mjt('setOption', 'h5EventDebounceDelay', 500);开发
SDK在初始化完成后会暴露一个track方法 叫 $mjt,SDK的track方法可以执行SDK内置的埋点事件
小程序: 在小程序的环境内 $mjt 方法会挂载到 global对象上
taro:
window.globalThis.$mjt('event', 'click', '1.4', {
ep: '1',
});检查环境
Nodejs 版本>=18
安装依赖包
yarn / npm install
开发
开发插件
打包
打包SDK(持续扩展)
npm run build:taro // Taro框架
