SDK接入
帮助中心 > 技术文档 > 客户端SDK > 跨平台框架 > Uni App > 使用说明
- 1. 初始化整体说明
- 2. 开启全埋点(自动采集)
- 2.1 全埋点(小程序)
- 2.2 全埋点(H5)
- 2.3 全埋点(native)
- 3. 用户关联
- 3.1 关联用户ID
- 3.2 获取设备唯一ID(匿名ID)
- 3.3 自定义设备唯一ID(匿名ID)
- 4. 用户属性
- 4.1 设置用户属性
- 4.2 固定初始值的属性
- 4.3 数值类型的属性
- 4.4 集合类型的属性
- 4.5 属性取消
- 4.6 清空用户属性
- 5. 自定义埋点
- 5.1 自定义埋点
- 5.2 自定义时长埋点
- 6. 事件属性
- 6.1 设置公共属性
- 6.2 获取预置属性
- 7. 数据存储与发送(native)
- 7.1 上报条件(native)
- 7.1.1 缓存条数
- 7.1.2 发送间隔
- 7.1.3 设置数据的网络上传策略
- 7.2 立即上报(强制上报)
- 7.3 本地数据缓存上限值
- 7.4 清空本地缓存事件
- 8. 其他功能
- 7.1 上报pushId(native)
- 7.2 开启App与H5打通功能(native)
- 7.2 日志开关
1. 初始化整体说明
说明:初始化整体说明是对初始化参数的数据结构说明,具体的初始化参数详见【集成文档(native)】、【集成文档(js)】。
var param = {
/**-- 1、app初始化脚本 --**/
serverUrl:"采集上报地址URL", //【native】【必填】配置采集上报地址URL
enableLog:true, //【native】【可选】开启日志
flushInterval:5000, //【native】【可选】上报时间间隔(毫秒)
flushPendSize:100, //【native】【可选】自定义上报缓存条数
autoTrackTypePolicy:3, //【native】【可选】开启全埋点
...
...
/**-- 2、微信小程序初始化脚本 --**/
applet:{
showLog:false, // 是否开启日志
name:"hina",
autoTrack:{ // 小程序全埋点配置
appLaunch: true, // 默认为 true,false 则关闭 H_MPLaunch 事件采集
appShow: true, // 默认为 true,false 则关闭 H_MPShow 事件采集
appHide: true, // 默认为 true,false 则关闭 H_MPHide 事件采集
pageShow: true, // 默认为 true,false 则关闭 H_MPViewScreen 事件采集
pageShare: true, // 默认为 true,false 则关闭 H_MPShare 事件采集
mpClick: false, // 默认为 false,true 则开启 H_MPClick 事件采集
mpFavorite: true, // 默认为 true,false 则关闭 H_MPAddFavorites 事件采集
pageLeave: false // 默认为 false, true 则开启 H_MPPageLeave事件采集
}
...
},
/**-- 3、H5初始化(开启全埋点)脚本 --**/
h5: {
// default 表示开启,自动采集 H_WebClick 事件,可以设置 'not_collect' 表示关闭。
clickAutoTrack: true,
// default 表示开启,自动采集 H_WebStay 事件,可以设置 'not_collect' 表示关闭。
stayAutoTrack: true,
}
};
hinaCloud.init(param)
2. 开启全埋点(自动采集)
2.1 全埋点(小程序)
小程序全埋点支持事件说明:
字段名 | 用户行为 | 默认(开启)值 | 支持平台 |
---|---|---|---|
appLaunch | 应用启动 | true | 微信、支付宝、百度、抖音、快手、京东、QQ |
appShow | 应用显示 | true | 微信,支付宝、百度、抖音、快手、京东、QQ |
appHide | 应用隐藏 | true | 微信,支付宝、百度、抖音、快手、京东、QQ |
pageShow | 页面显示 | true | 微信,支付宝、百度、抖音、快手、京东、QQ |
pageShare | 分享 | true | 微信 |
mpClick | 点击 | false | 微信,支付宝、百度、抖音、快手、京东、QQ |
mpFavorite | 收藏 | true | 微信 |
pageLeave | 页面离开 | false | 微信,支付宝、百度、抖音、快手、京东、QQ |
需了解事件详情,请查看微信小程序 SDK 全埋点
2.2 全埋点(H5)
H5全埋点支持事件说明:
字段名 | 用户行为 | 默认(开启)值 |
---|---|---|
clickAutoTrack | 点击事件 | true |
stayAutoTrack | 页面停留 | true |
需了解H5事件详情,请查看Web JS SDK 全埋点 autoTrackConfig 参数。
2.3 全埋点(native)
Native SDK 可以自动采集一些用户行为,如 App 启动、退出、浏览页面、控件点击,共计四种。但是,uniapp工程仅支持采集APP启动和退出,对于浏览页面和控件点击的采集,在下面的注意事项里提供了建议方案。
说明:在初始化时,通过autoTrackTypePolicy参数进行配置开启,不配置则视为关闭全埋点。
var param = {
/**1、app初始化脚本**/
...
//比如:1:开启App 启动事件;2:开启App 退出事件,3:开启App启动和退出事件,0:不开启(默认);
autoTrackTypePolicy:3,//【native】【可选】开启全埋点
...
/**2、微信小程序初始化脚本**/
applet:{
...
autoTrack:{// 在这里进行小程序全埋点配置,配置请参考【集成文档(js)】
}
...
},
h5: {
// 在这里进行h5全埋点配置,配置请参考【集成文档(js)】
}
};
hinaCloud.init(param)
注意:浏览页面[H_AppViewScreen]、控件点击[H_AppClick]的两个行为事件仅对原生工程支持,所以在非原生工程的情况下,该两个行为事件(浏览页面[H_AppViewScreen]、控件点击[H_AppClick])需要手动设置,设置示例代码如下,可参考进行埋点:
1、对于“浏览页面”事件,通过监听页面路由切换,然后添加自定义埋点来实现,uniapp切换路由监听导航跳转示例如下:
//注意要写在App.vue文件的onLauch方法里面
onLaunch: function() {
//监听页面跳转变化
let that = this;
uni.addInterceptor('navigateTo', { // 监听跳转
success(e) {
var properties = {H_title:"首页",H_url:"http://xxx",H_screen_name:"您的页面名称"};
hinaCloud.track("H_AppViewScreen",properties)
//
that.watchRouter();
}
})
uni.addInterceptor('redirectTo', { // 监听关闭本页面跳转
success(e) {
that.watchRouter();
}
})
uni.addInterceptor('switchTab', { // 监听tabBar跳转
success(e) {
that.watchRouter();
}
})
uni.addInterceptor('navigateBack', { // 监听返回
success(e) {
that.watchRouter();
}
})
}
methods: {
watchRouter(){
console.log('路由进行跳转');
},
}
2、对于“控件点击”事件,首先看下项目使用的控件,有没有统一的设置监听方法;如果没有,是否可以在编译过程对控件统一植入监听器代码实现(切面编程);或者可以从页面渲染过程,遍历控件树,按需添加监听器相关逻辑;
methods: {
focus(){
console.log("聚焦");
},
blur(){
console.log("失去焦点");
},
confirm(){
console.log("回车确认");
},
click(){
console.log("单击事件");
// 设置事件属性信息
var properties = {element_type:"button",element_content:"支付"};
hinaCloud.track("H_AppClick",properties)
},
tap(){
console.log("触摸");
},
longpress(){
console.log("长时间按压");
},
touchcancel(){
console.log("触摸中断");
},
touchmove(){
console.log("触摸移动");
}
}
3. 用户关联
3.1 关联用户ID
适用平台:【Andorid、iOS、H5、小程序】
说明:当用户注册成功或登录成功时,需要调用 SDK 的 setUserUId() 方法。
hinaCloud.setUserUId("您平台用户唯一标识");// 比如:登录手机号、登录邮箱 、用户唯一主键值
注意:为了准确记录登录用户的行为信息,建议在以下时机各调用一次用户登录方法:
· 用户在注册成功时
· 用户登录成功时
· 已登录用户每次启动 App 时
3.2 获取设备唯一ID(匿名ID)
适用平台:【Andorid、iOS、H5、小程序】
说明:如需获取设备唯一id,请在初始化SDK后调用getDeviceUId()方法进行获取。
// 返回String类型
var deviceUID = hinaCloud.getDeviceUId();
3.3 自定义设备唯一ID(匿名ID)
适用平台:【Andorid、iOS、H5、小程序】
说明:默认情况下,SDK 会生成设备唯一ID 并可以保证该ID的唯一性,如需替换SDK默认分配的,配置如下:
hinaCloud.setDeviceUId("自定义设备唯一ID");
注意:
1、android平台:默认使用 AndroidId 作为设备 ID,如果 AndroidId 获取不到则获取随机的 UUID。
2、iOS平台:如果 App 引入了 AdSupport 库,SDK 默认使用 IDFA 作为设备唯一 ID,使用 IDFA 能避免用户在重装 App 后设备 ID 发生变化的情况。若没有IDFA,SDK 会使用 IDFV,如果 IDFV 获取失败,则使用随机的 UUID,一般情况下都能够获取到 IDFV。如果使用 IDFV 或 UUID ,当用户卸载重装 App 时设备 ID 会变。
3、web平台:默认是 cookie_id。
4. 用户属性
4.1 设置用户属性
适用平台:【Andorid、iOS、H5、小程序】
说明:同一个 key 多次设置时,value 值会进行覆盖替换。
var properties = {age:"18"};
hinaCloud.userSet(properties);
4.2 固定初始值的属性
适用平台:【Andorid、iOS、H5、小程序】
说明:同一个 key 多次设置时,value 值只会记录初次设定的值;适用于为用户设置首次激活时间、首次注册时间等属性。
var properties = {register_date:"2022-01-01"};
hinaCloud.userSetOnce(properties);
4.3 数值类型的属性
适用平台:【Andorid、iOS、H5、小程序】
说明:同一个 key 多次设置时,value 值(数值类型)进行求和计算;常用于记录用户付费次数、付费额度、积分等属性。
var properties = {score:80};
hinaCloud.userAdd(properties);
4.4 集合类型的属性
适用平台:【Andorid、iOS、H5、小程序】
说明:同一个 key 多次设置时,value 值(字符串类型)进行追加;
// 示例代码
hinaCloud.userAppend("books", ["童话世界", "三字经"]);
4.5 属性取消
适用平台:【Andorid、iOS、H5、小程序】
说明:取消已设置的某个用户属性。
hinaCloud.userUnset("gender");
4.6 清空用户属性
适用平台:【Andorid、iOS、H5、小程序】
说明:清空当前用户的用户属性。
hinaCloud.userDelete();
5. 自定义埋点
用于记录埋点事件。
5.1 自定义埋点
适用平台:【Andorid、iOS、H5、小程序】
说明:使用track()方法进行直接埋点,埋点事件支持添加自定义属性。
//比如:点击“开始阅读”按钮,并添加属性:小说id、小说的章节;
var eventName = "novel_read_btn_click";
var properties = {novel_id:"1234567890",novel_chapter:"3"};
hinaCloud.track(eventName, properties);
5.2 自定义时长埋点
适用平台:【Andorid、iOS】
说明:需要成对调用计时器的开始和结束方法,以此来实现对统计时长的事件采集;
*在事件开始时,调用trackTimerStart("event1")
,该方法并不会真正发送事件;
*在事件结束时,调用trackTimerEnd("event1", properties)
,SDK 会触发 “Event” 事件,并自动将事件持续时间记录在事件属性 “event_duration” 中。
// 比如:开始观看视频;
hinaCloud.trackTimerStart("watch_video");
// 比如:结束观看视频;
// 调用 trackTimerEnd 方法,会触发事件,并在属性 event_duration 中记录时长;
hinaCloud.trackTimerEnd("watch_video", {video_id:"1234567890",video_type:"娱乐"});
6. 事件属性
在进行埋点事件追踪时,您可以根据需求对埋点事件进行属性的定义。目前 SDK 中提供了公共属性用于给每个埋点事件添加属性。
6.1 设置公共属性
适用平台:【Andorid、iOS、H5、小程序】
说明:公共属性是指对于所有事件都需要添加的属性,设置之后 SDK 会在每次触发埋点时,自动获取并添加到触发的事件中。
var properties = {app_name: 'SDKDemo'};
hinaCloud.registerCommonProperties(properties);
6.2 获取预置属性
适用平台:【Andorid、iOS、H5、小程序】
说明:如需了解和使用预置属性,可以通过此方法获取预置属性。
// 返回json类型
var presetProperties = hinaCloud.getPresetProperties();
7. 数据存储与发送(native)
在每次调用 track()、setUserUId()、userSet() 等方法时,SDK 会将埋点事件保存在数据库中,并会检查如下条件,以判断是否向服务器上传数据:
1.是否是 WIFI/2G/3G/4G/5G 网络条件
2.是否满足发送条件之一:
a.与上次发送的时间间隔是否大于 flushInterval
b.本地缓存日志数目是否大于 flushPendSize
c.事件类型为 setUserUid() 方法触发的 $SignUp 事件
7.1 上报条件(native)
7.1.1 缓存条数
适用平台:【Andorid、iOS】
说明:设置本地缓存日志的最大条目数,默认本地埋点数据缓存为 100 条。
var param = {
...
flushPendSize:50,//最少50条;
...
};
hinaCloud.init(param)
7.1.2 发送间隔
适用平台:【Andorid、iOS】
说明:设置埋点数据发送的间隔,默认为 15s。
var param = {
...
flushInterval:5000,//最小 5 秒,单位毫秒。
...
};
hinaCloud.init(param)
7.1.3 设置数据的网络上传策略
适用平台:【Andorid、iOS】
说明:默认情况下,在 WIFI/3G/4G/5G 网络条件下,SDK 都会尝试去同步数据。可以自由组合来指定发送数据的网络策略。
/**
* 设置 flush 时网络发送策略,默认 3G、4G、WI-FI 环境下都会尝试 flush
* TYPE_NONE = 0;//NULL
* TYPE_2G = 1;//2G
* TYPE_3G = 1 << 1;//3G 2
* TYPE_4G = 1 << 2;//4G 4
* TYPE_WIFI = 1 << 3;//WIFI 8
* TYPE_5G = 1 << 4;//5G 16
* TYPE_ALL = 0xFF;//ALL 255
* 例:若需要开启 4G 5G 发送数据,则需要设置 4 + 16 = 20
*/
//指定只在 3G/4G/WIFI 条件下发送数据。
hinaCloud.setFlushNetworkPolicy(14);
7.2 立即上报(强制上报)
适用平台:【Andorid、iOS】
说明:如果追求数据采集的时效性,调用flush(),即可立即执行上报。
hinaCloud.flush();
注意:在 App 进入后台状态或监听到网络切换有网络时,SDK 会调用 flush() 方法,将缓存的数据发送。
7.3 本地数据缓存上限值
适用平台:【Andorid、iOS】
说明:Android和iOS设置维度不一样,如有需要,请分开设置;
var param = {
...
//android配置空间大小,SDK 本地数据库默认缓存数据的上限值为 32MB
maxCacheSizeForAndroid: 32 * 1024 * 1024,//设置最小 16MB(16 * 1024 * 1024),单位 byte;
//iOS配置条数,默认10000条
maxCacheSizeForIOS: 10000,//设置最少10000条;
...
};
hinaCloud.init(param)
注意:当存储数量达到上限值,会依次丢弃老数据,保留最新的数据。
7.4 清空本地缓存事件
适用平台:【Andorid、iOS】
说明:删除 App 本地存储的所有事件。
hinaCloud.clear();
注意:如果不是特殊要求,请不要调用此方法。
8. 其他功能
7.1 上报pushId(native)
适用平台:【Andorid、iOS】
说明:如需使用海纳云的营销推送功能,则需要上报推送id;
/**
* 【推送id】设置推送唯一id
*
* @param pushTypeKey
* @param pushUId
*/
hinaCloud.setPushUId("JPush", "push0001");
7.2 开启App与H5打通功能(native)
适用平台:【Andorid、iOS】
说明:初始化 SDK 时,进行如下配置。
var param = {
...
enableJSBridge:true,
...
};
hinaCloud.init(param)
7.2 日志开关
适用平台:【Andorid、iOS、H5、小程序】
说明:初始化 SDK 时,进行如下配置。
var param = {
...
enableLog:true,//【native】【日志】
...
applet:{
showLog:true, //【applet】【日志】
}
};
hinaCloud.init(param)
最后编辑:王建华 更新时间:2024-11-20 17:38