- DM Hub数据采集概览
- DM Hub身份和事件模型
- DM Hub数据采集SDK
- DM Hub数据采集API
- 隐私保护声明
获取SDK
1. 从DM Hub的设置中心下载SDK,路径为:设置中心->营销触点->微信小程序
将文件拷贝到小程序项目到utils文件夹中,并在 app.js 第一行加上:
require('./utils/cl_tracker.js');
2. 添加微信request合法域名
在微信开发设置,服务器域名的 request 合法域名内,把服务器地址加上. 详情参考微信服务器域名设置
管理员或开发者身份在微信小程序后台→开发→开发者设置中添加服务器地址, 服务器地址通常是cbe.convertlab.com,如果是私有部署,请询问对接人员
3. 获取mini_program_code
管理员或开发者身份在微信小程序后台左边菜单选择“设置”,然后在右边的“基本设置”拉到最底部就会看到“帐号信息”下的“AppID(小程序ID)”。

4. 检测SDK接入状态是否成功
在app.js中的onLaunch方法中键入
this.cl_tracker.track('mini_program_open', '测试小程序', 'mini_program_code');
控制台中的Network中是否有消息(https://cdn.convertlab.com/__utm),并且status为200
记录事件示例
app.cl_tracker.track(
'mini_program_open',
{
targetName:'小程序名称',
targetId:'mini_program_code',
... // 其他参数
},
callback // 事件回调,可以不传
);
或者:
app.cl_tracker.track(
'mini_program_open',
'小程序名称',
'mini_program_code',
{}, // 其他参数,可以不传
callback // 事件回调,可以不传
);
第一次使用track方法之后,SDK会记住targetName和targetId,后续track方法可以不指定targetName和targetId,比如:
app.cl_tracker.track(
'mini_program_view',
{
... // 其他参数
},
callback // 事件回调,可以不传
);
或者:
app.cl_tracker.track(
'mini_program_view',
'',
'',
{}, // 其他参数,可以不传
callback // 事件回调,可以不传
);
若需要记录自定义事件请先在系统中添加。
小程序SDK的接口和身份模型与JS SDK保持一致,关于接口的详细介绍,已经URL参数的格式,可以参考网页JS SDK中的2、3、4章节。
注意:小程序只能使用javascript来提交事件
设置事件身份
默认状态下,埋点事件是匿名事件,无法绑定到后台客户上。需要小程序在获取用户身份或者登录后, 应立即设置客户身份。
设置对应的身份类型(type)和value的示例如下:
var app = getApp();
app.cl_tracker.push({
identityType: 'applet-wechat', //如果identityValue使用unionid,identityType请设置为"wechat-unionid"
identityValue: 'oI_M5xC_YlVhrGe5kcYhkzEQM6wM' // identityValue 是用户的open_id或unionid
});
身份模型请参考:DM Hub用户身份模型
如果有多个身份: (最多同时支持3个身份), 请分别放在identityType/identityType2/identityType3中
var app = getApp();
app.cl_tracker.push({
identityType: 'applet-wechat',
identityValue: 'oI_M5xC_YlVhrGe5kcYhkzEQM6wM', // identityValue 是用户的open_id
identityType2: 'wechat-unionid',
identityValue2: 'o7QvZ1TT5oo1F8rNJvchn1GGv5t8',
identityType3: 'customer_identity1',
identityValue3: 'the_customer_identity_value1',
});
如果不是同时拿到所有的身份, 可以分别push identityType/identityType2/identityType3
app.cl_tracker.push({
identityType: 'applet-wechat',
identityValue: 'openId_openId_openId',
});
app.cl_tracker.push({
identityType2: 'wechat-unionid',
identityValue2: 'unionId_unionId_union_Id',
});
注意:同一个identityType应该永远对应一种身份类型。
如果使用
app.cl_tracker.push({
identityType: 'applet-wechat',
identityValue: 'openId_openId_openId',
});
又使用
app.cl_tracker.push({
identityType: 'wechat-unionid',
identityValue: 'unionId_unionId_union_Id',
});
结果是第一个identityType: 'applet-wechat' 是无效的。
设置全局上报参数
如果一个小程序上设置的追踪代码较多,而且他们之间有一些公共的参数,如果在每个追踪点都分别设置这些参会,会给代码维护带来不便。为此,sdk引入了push方法,用来设置页面全局参数。通过push方法设置的参数,在该小程序中后续的track方法调用时,会自动传递。
如果是以分包的方式开发含有多个分包的小程序模块,各个模块之间push的参数无法自动传递,需要跳转到其他模块时,通过代码将需要传递的参数(e.g 来源参数,营销活动...)传递到后继小程序模块
代码示例:
app.cl_tracker.push({
scene:'Home',
camapign: 'Christmas 2024'
});
小程序生命周期事件自动采集设置
当使用微信原生小程序(不支持某些第三方框架,例如uniapp)时。 SDK提供了一些设置方法,用于开启打开、关闭小程序;进入、退出小程序页面时,事件的自动采集。
注意,默认情况下这些自动采集的开关都是关闭的,需要在相应的生命周期回调函数处进行代码埋点
setEnableAutoTrackMiniProgramOpen
设置 mini_program_open
事件开关,参数 true
开启,false
关闭,默认关闭
示例代码如下:
App({
onLaunch(e) {
this.cl_tracker.setEnableAutoTrackMiniProgramOpen(true);
}
})
setEnableAutoTrackMiniProgramView
设置 mini_program_view
事件开关,参数 true
开启,false
关闭,默认关闭
示例代码如下:
App({
onLaunch(e) {
this.cl_tracker.setEnableAutoTrackMiniProgramView(true);
}
})
setEnableAutoTrackMiniProgramExit
设置 mini_program_exit
事件开关,参数 true
开启,false
关闭,默认关闭
示例代码如下:
App({
onLaunch(e) {
this.cl_tracker.setEnableAutoTrackMiniProgramExit(true);
}
})
setEnableAutoTrackMiniProgramResign
设置 mini_program_resign_active
事件开关,参数 true
开启,false
关闭,默认开启
示例代码如下:
App({
onLaunch(e) {
this.cl_tracker.setEnableAutoTrackMiniProgramResign(true);
}
})