获取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);
    }
})