多实例
简介(gioMultipleInstances)
当您的小程序需要使用两套不同采集方案逻辑和数据双发时,我们提供了多实例的方案。
集成
注意:SDK版本大于等于 4.1.0 支持。
1、引入
下载集成引入
- 下载插件并复制至项目中:
https://assets.giocdn.com/sdk/minip/4.3.1/plugins/gioMultipleInstances.js
(如果您点击链接在浏览器中直接打开了文件并不是下载文件,请尝试右键点击链接,选择链接存储为...
即可正常触发下载)
import gioMultipleInstances from './utils/plugins/gioMultipleInstances';
npm 集成引入
import gioMultipleInstances from 'gio-miniprogram-sdk/plugins/gioMultipleInstances';
2、注册
gdp('registerPlugins', [gioMultipleInstances]);
gdp('init', xxx);
3、使用
// 初始化主实例
gdp('init', accountId1, datasourceId1, {
...主实例配置项,
});
// 初始化子实例
gdp('g1.init', accountId2, datasourceId2, {
...子实例配置项,
});
// 主实例调用api
gdp('setUserId', xxx);
gdp('track', xxx, xxx);
// 子实例调用api
gdp('g1.setUserId', xxx);
gdp('g1.track', xxx, xxx);
4、埋点、埋点计时、半自动埋点浏览多发
埋点、埋点计时多发
您可以将埋点事件发送给一个或多个实例。例如以下示例代码说明了如何将某一个埋点事件发送给多个实例。
&&sendTo
为SDK预定义判断专用属性值,您在埋点时请注意不要使用同名的字段。并且它在实际上报时不会携带入库。
gdp('track', 'sign_in', {
userId: '0114523',
userName: 'ZhangSan',
city: 'HangZhou',
&&sendTo: ['g2', 'g5']
});
gdp('trackTimerEnd', 'timerId', {
userId: '0114523',
userName: 'ZhangSan',
city: 'HangZhou',
&&sendTo: ['g2', 'g5']
});
上述示例代码,会将该埋点事件发送给 g0
并同时分别复制发送给 g2
和g5
两个实例,前提是他们都已经被正确初始化。不存在或未正确初始化的实例会被自动跳过。会发送给g0
的原因是,track
的调用等同于 g0.track
(参考下文多实例规则)。
因此使用的逻辑是,调用的实例会被发送,同时复制发送给&&senTo
指定的实例。调用和指定复制的实例名为同一个时,只发送一次。
需要注意的是,复制发送埋点时,只会完全复制事件名和事件属性,通用字段例如session、userId等,还是指定实例自身的值。并且不会带上指定实例的埋点通用属性。