数据采集API
通过 window.gdp
这个全局的方法可以调用到SDK中所有开放的接口。
参数限制
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]
。因此您需要调整数据格式。
回调方法
在本页面中所列出的所有api,均支持传入一个可选回调函数,回调函数均在gio逻辑执行完毕后执行。部分api会回传部分参数,以api说明为准。
注意:回调函数执行时,仅表示SDK已执行对应方法,不保证对应事件触发并上报成功。
动态修改配置接口(setOption)
自3.8.0
版本开始我们提供了统一的接口,以降低接口使用难度。4.0
版本继承了这一设定,但小于3.8.0版本的写法不再兼容,请注意修改。
gdp('setOption', optionKey, optionValue, callback?: function);
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', [plugin1, plugin2], callback?: (registeredPlugins: any[]) => void);
2、设置访问用户Id(identify)
访问用户Id,又称为匿名用户Id/设备Id,在公众号H5中调用网页授权之后,获取 openId 或 unionId,调用 identify 设置访问用户Id。
gdp('identify', openId / unionId / customId: string, callback?: function);
注意:
1)若使用此接口需要在初始化时将 forceLogin 设置为 true。 参考文档
2)该方法仅可合法地调用一次,多次调用无效。
3、获取访 问用户Id(getDeviceId)
访问用户Id,又称为匿名用户Id/设备Id,SDK 自动生成(UUID)用来唯一标识设备。如果没有初始化SDK时返回值为空。
gdp('getDeviceId', callback: (deviceId: string) => void);
4、设置登录用户Id(setUserId)
当用户登录之后调用,设置登录用户ID
- 当需要标记用户ID类型时,请先进行规划,并在平台的数据中心,添加新的用户身份类型,再设置userkey,误设会影响数据质量。 同时在初始化 SDK 时设置
idMapping
为true
参数说明
参数 | 参数类型 | 说明 |
---|---|---|
userId | String | 长度限制大于0且小于等于1000,如果大于长度1000将只截取前1000长度 |
userKey | String | 适用于ID-MAPPING,可设置 userId 的类型, 默认不传 |
gdp('setUserId', userId: string | number, userKey?: string | number, callback?: function);
5、清除登录用户Id(clearUserId)
当用户登出之后调用 clearUserId
,清除已经设置的登录用户ID。
gdp('clearUserId', callback?: function);
6、用户属性(setUserAttributes)
以登录用户的身份定义登录用户属性,用于用户信息相关分析。
gdp('setUserAttributes', userAttributes, callback?: function);
7、埋点事件(track)
发送一个埋点事件。在添加所需要发送的事件代码之前,需要在平台中配置事件以及事件属性。埋点使用规范
gdp('track', eventName: string, attributes?: Object, callback?: function);
示例
gdp('track', 'order');
gdp('track', 'order', {
type: 'drinks',
name: ['cola', 'milk', 'juice'], // 仅支持字符串和数字的一维数组,其他类型会被强制转为字符串
currency: 'RMB',
price: 3
});
提示:您可以使用多实例的能力将埋点同时上报给其他实例 参考文档
注意:
1)所有属性都必须是用户的属性,不能是订单 ID,商品ID 等和用户没有确定的关联关系的属性。
2)同一个字段,必须保持在各个平台意义相同。
3)cs1 和 userId 字段是特殊用来唯一标识你自己站点的注册用户的预置属性,请不要使用重名字段。
8、设置埋点通用属性(setGeneralProps)
有时我们埋点需要大量业务属性,但需要每次调用时都进行传值,这给埋点工作带来了一定程度上的无用重复劳动。现在我们可以通过setGeneralProps
来给后续产生的所有的埋点事件加上通用属性,从而免去一些不必要的重复劳动。也可以利用该方法为所有的埋点事件进行动态设置通用属性。
设置的通用属性可以是静态固定值,也可以是一个简单的方法执行结果的动态值。当属性值为方法时,SDK会自动执行尝试获取返回值,支持返回的数据类型:String
、Number
、一元Array
、Boolean