1.引入行为采集
版本:1.4.2
将以下代码嵌⼊关键业务⼊⼝⻚⾯的 head 标签
<head>
<script>
(function() {
var script = document.createElement('script')
script.src = 'https://static.trustdecision.com/tdbh/tdbehavior.min.js?t=' + (new Date().getTime()/3600000).toFixed(0)
document.head.appendChild(script)
})()
</script>
...
</head>
2. 初始化 SDK
接口定义
function initWithOptions(options)
initWithOptions方法必传配置
| 配置 key | 定义 | 说明 | 示例代码 |
|---|---|---|---|
| partner | 合作方编码 | 合作方编码 partner code,请联系运营获取 | options['partner'] = '请输入您的合作方编码'; |
| appKey | 应用标识 | 应用标识,参考如何申请appKey | options['appKey'] = '请输入您的appKey'; |
| country | 国家地区 | 根据国家地区填写对应参数。 cn 代表中国, sg 代表新加坡, us代表北美, fra代表欧洲,idna代表印尼 | options['country'] = '请输入您所在的国家地区'; |
示例代码
//初始化
const options = {}
// 合作方编码,如 tongdun,参考`必传配置`
options['partner'] = '请输入您的合作方编码';
// 同盾平台注册的应用标识,参考`必传配置`
options['appKey'] = '请输入您的appKey';
// 国家地区参数,参考`必传配置`
options['country'] = '请输入您所在的国家地区';
TDBehavior.initWithOptions(options);
3.调用行为采集方法
行为采集方法用于获取用户行为数据,其接口定义如下:
/**
* TDBehavior start,开始行为采集,将采集数据写入SDK内部容器中
*/
TDBehavior.start()
/**
* TDBehavior stop,结束行为采集,停止将采集数据写入SDK内部容器中,同时清空SDK内部容器中的数据;
*/
TDBehavior.stop()
/**
* TDBehavior collect,返回行为采集结果,如果SDK内部容器中存在数据,则会返回成功code == 0,同时清空SDK内部容器中的数据;
* 如果SDK内部容器中不存在数据则返回code == 104 错误码
*/
const result = await TDBehavior.collect()
示例代码
⚠️⚠️⚠️ 确保在业务界面调用start之后,存在用户行为,例如:文字输入、点击、
滑动等,否则调用 collect 会返回104错误码,表示没有采集到行为数据;
// 在进入业务界面时,调用 start方法,进行行为采集,例如进入登录界面时
TDBehavior.start();
...
// 在调用业务接口时,调用 collect方法,获取行为采集数据,例如点击登录按钮
const result = await TDBehavior.collect();
const code = result['code'];
const msg = result['msg'];
const payload = result['payload'];
if (code === 0) {
console.log('获取行为采集结果成功,payload: ' + payload);
} else {
console.log('获取行为采集结果失败,code: ' + code + ', msg: ' + msg);
}
...
// 离开业务界面时,调用 stop方法,结束行为采集,例如离开登录界面时
TDBehavior.stop();
指定不需要监听的输入框
在 input、textarea 输入框 设置属性 data-tdbehavior-exkey 包含 "TDBehaviorExInput" ,设置后,将不会对input、textarea 输入框的文字输入事件进行监听
<input data-tdbehavior-exkey="TDBehaviorExInput" placeholder="当前输入框不采集"></input>
<textarea data-tdbehavior-exkey="TDBehaviorExInput" placeholder="当前输入框不采集"></textarea>
initWithOptions方法选传配置
| 配置 key | 定义 | 说明 | 示例代码 |
|---|---|---|---|
| behaviorHttpTimeOut | 行为采集SDK 内部所有网络请求超时时间 | 单位:秒、float默认值:15.0 | options['behaviorHttpTimeOut'] = 15.0; |
4.code 返回码
| 错误码 | 描述 | 处理方案 |
|---|---|---|
| 0 | 成功 | 无需处理 |
| 100 | 没有调用 initWithOptions | 没有调用 initWithOptions,需要调用 initWithOptions |
| 101 | 网络鉴权结果还没有返回 | 向用户抛出错误:“网络原因,请检查网络后重试”,引导用户重新调用 collect 方法 |
| 102 | 系统原因导致的鉴权接口网络错误,例如没有网络连接等 | 向用户抛出错误:“网络原因,请检查网络后重试”,引导用户重新调用 collect 方法 |
| 103 | 鉴权接口后端返回状态码非200 | 检查 partner 参数是否填写正确,如果还是失败,提供错误信息result.msg给我司运营确认参数是否正确且在有效期内 |
| 104 | SDK内部容器中没有数据 | 确保在业务界面调用start之后,存在用户行为,例如:文字输入、点击、滑动等! |
| 109 | SDK内部容器中没有数据 | 采集开关全部关闭,请提供错误信息result.msg给我司运营! |
| 110 | SDK内部容器中没有数据 | 确保调用collect方法前调用了start方法! |
