数据采集API
通过 global.gdp
这个全局的方法可以调用到SDK中所有开放的接口。
您可在页面头部进行解构获取gdp方法。const { gdp } = global;
(阿里(支付宝)小程序和淘宝小程序为 const { gdp } = $global;
)
参数限制
Object参数限制
SDK文档中指定参数值为 Object类型 时,请注意以下限制:(非指定类型值均会被替换为空字符串,长度超限均会被截断)
key:
String,length <=100;
value:
String | number 时 length <=1000; Array 时 length <=100
上报参数说明
调用 埋点事件(track) 和 登录用户属性(setUserAttributes) 时;
1、如果您的属性值是一个字符串或者数字组成的一维数组,上报时会自动转换为 Array.join('||')
的字符串便于服务端进行拆分解析。生成的字符串再经上述的Object参数限制进行过滤处理,字符串总长度大于1000时或数组长度大于100时会被截断。因此您需要控制数组中总体字符串和总体数组的长度。
示例
name: ['cola', 'milk', 'juice']
// 上报时会自动转换为↓↓↓
name: 'cola||milk||juice'
2、如果您的属性值是一个 json 格式,则可能会被强制转换为[object Object]
。因此您需要调整数据格式。
动态修改配置接口(setOption)
自3.8.0
版本开始我们提供了统一的接口,以降低接口使用难度。4.0
版本继承了这一设定,但**< 3.8.0版本的写法不再兼容**,请注意修改。
gdp('setOption', optionKey: string, optionValue: boolean | string);
1、开启/关闭数据采集(dataCollect)
默认开启数据采集。当设置为 false
时,SDK将不会采集和上报事件。由关闭修改为开启时,自动补发VISIT和当前页面的PAGE事件。
gdp('setOption', 'dataCollect', true | false);
2、开启/关闭调试模式(debug)
默认不开启调试模式。当设置为 true
时,开启后会在开发者工具控制台输出日志。
gdp('setOption', 'debug', true | false);
3、修改数据上报请求地址(serverUrl)
默认为https://napi.growingio.com
。
Saas客户请不要修改此项,会导致您没有数据上报;OP私有部署客户可以在开发过程中设置为指定地址方便与服务端进行调试。
gdp('setOption', 'serverUrl', 'http://api.growingio.com');
功能接口
1、注册插件(registerPlugins)
默认情况下基础SDK仅包含埋点功能,如果您需要额外扩展功能,请参考初始化集成和插件列表进行插件的注册。
gdp('registerPlugins', pluginItems: any[]);
2、设置访问用户Id(identify)
访问用户Id,又称为匿名用户Id/设备Id,在微信小程序调 用登录开放接口 wx.login
之后,获取 openId,调用 identify 设置访问用户Id。
gdp('identify', openId / unionId / customId: string);
注意:
1)若使用此接口需要在初始化时将 forceLogin 设置为 true。 参考文档
2)该方法仅可合法地调用一次,多次调用无效。
3、获取访问用户Id(getDeviceId)
访问用户Id,又称为匿名用户Id/设备Id,SDK 用来定义唯一设备。如果没有初始化SDK 或者关闭采集开关可能返回值为空。
const gioDeviceId: string = gdp('getDeviceId');
注意:开启forceLogin的小程序在identify之前获取的是SDK自动生成的值,identify之后获取的是您设置的值。
4、设置登录用户Id(setUserId)
当用户登录之后调用,设置登录用户ID
-
如果您的小程序每次用户升级版本时无需重新登录的话,为防止用户本地缓存被清除导致的无法被识别为登录用户,建议在用户每次登录小程序访问时调用setUserId方法
-
当需要标记用户ID类型时,请先进行规划,并在平台的数据中心,添加新的用户身份类型,再设置userkey,误设会影响数据质量。 同时在初始化 SDK 时设置
idMapping
为true
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
userId | String | 长度限制大于0且小于等于1000,如果大于长度1000将只截取前1000长度 |
userKey | String | 适用于ID-MAPPING,可设置 userId 的类型, 默认不传 |
gdp('setUserId', userId: string | number, userKey?: string | number);
5、清除登录用户Id(clearUserId)
当用户登出之后调用 clearUserId
,清除已经设置的登录用户ID。
gdp('clearUserId');
6、登录用户属性(setUserAttributes)
以登录用户的身份定义登录用户属性,用于用户信息相关分析。
gdp('setUserAttributes', userAttributes);
示例
gdp('setUserAttributes', { name: 'Lily', age: 18 });
gdp('setUserAttributes', {
tags: ['clever', 'brave', 'strong'], // 仅支持字符串和数字的一维数组,其他类型会被强制转为字符串
age: 18
});
微信用户属性设置
Gio平台系统中用户属性默认预定义的微信用户属性如下表:
名称 | 标识符 | 名称 | 标识符 |
---|---|---|---|
微信 openid | $wechat_openId | 微信用户所在国家 | $wechat_country |
微信 unionid | $wechat_unionId | 微信用户所在省份 | $wechat_province |
微信昵称 | $wechat_nickName | 微信用户所在城市 | $wechat_city |
微信头像 | $wechat_avatarUrl | 微信语言 | $wechat_language |
微信用户性别 | $wechat_gender | 关注公众号 | $wechat_subscribeList |
当小程序获取到微信用户信息后,以上属性标识符无需在 GrowingIO 平台用户属性中添加,调用 setUserAttributes
上报微信用户信息即可。注意自行添加 $wechat_
的前缀。例:
wx.getUserInfo({
success: (res) => {
const user = res.userInfo;
gdp('setUserAttributes', {
$wechat_openId: user.openid,
$wechat_unionId: user.unionid,
$wechat_nickName: user.nickname
});
}
})
阿里(支付宝)小程序用户属性设置
Gio平台系统中用户属性默认预定义的阿里(支付宝)小程序用户属性如下表:
名称 | 标识符 | 名称 | 标识符 |
---|---|---|---|
支付宝用户 ID | $alipay_userId | 支付宝学生认证 | $alipay_isStudentCertified |
支付宝头像 | $alipay_avatar | 支付宝用户类型 | $alipay_userType |
支付宝用户所在省份 | $alipay_province | 支付宝用户状态 | $alipay_userStatus |
支付宝用户所在城市 | $alipay_city | 支付宝实名认证 | $alipay_isCertified |