自定义数据上传API
自定义数据常用作打通业务逻辑
您的APP 集成了 Android 无埋点 SDK 之后,它将会自动地为您采集访问,页面浏览,元素点击等用户行为数据,进行数据分析。除自动收集的用户行为数据(或称为无埋点数据)之外,SDK 还提供了多种 API 接口,供您上传一些自定义数据,下面介绍自定义数据 API 使用方法,后文简称埋点 API。
GrowingIO所有运行时API需要在主线程调用。
API概览
// 发送自定义事件 API
GrowingIO gio = GrowingIO.getInstance();
gio.track(String eventId);
gio.track(String eventId, JSONObject eventLevelVariables);
// 发送页面级变量 API,适用于无埋点SDK
GrowingIO gio = GrowingIO.getInstance();
gio.setPageVariable(Activity activity, String key, String value);
gio.setPageVariable(Activity activity, String key, Number value);
gio.setPageVariable(Activity activity, String key, Boolean value);
gio.setPageVariable(Activity activity, JSONObject pageLevelVariables);
gio.setPageVariable(Fragment fragment, String key, String value);
gio.setPageVariable(Fragment fragment, String key, Number value);
gio.setPageVariable(Fragment fragment, String key, Boolean value);
gio.setPageVariable(Fragment fragment, JSONObject pageLevelVariables);
// 发送转化变量 API
GrowingIO gio = GrowingIO.getInstance();
gio.setEvar(String key, String value);
gio.setEvar(String key, Number value);
gio.setEvar(String key, Boolean value);
gio.setEvar(JSONObject conversionVariables);
// 设置登录用户ID API
GrowingIO.getInstance().setUserId(String userId);
// 发送登录用户变量 API
GrowingIO gio = GrowingIO.getInstance();
gio.setPeopleVariable(String key, String value);
gio.setPeopleVariable(String key, Number value);
gio.setPeopleVariable(String key, Boolean value);
gio.setPeopleVariable(JSONObject peopleVariables);
// 清除登录用户ID API
GrowingIO.getInstance().clearUserId();
// 设置访问用户变量,或者设置 A/B 测试标签
GrowingIO.getInstance().setVisitor(JSONObject visitorVariable);接口定义
1. 设置登录用户ID
当用户登录之后调用setUserId API,设置登录用户ID。
参数说明
参数名称
类型
是否必须
说明
userId
String
是
登录用户ID,长度<=1000;
如果设置饿值为空,则清空登录用户ID,不建议这么用;
请使用 clearUserId 清除登录用户ID
2. 清除登录用户ID
当用户退出登录之后调用clearUserId,清除已经设置的登录用户ID。
示例代码
3. 设置登录用户变量
当需要上报登录用户变量时,调用 setPeopleVariable API。
发送登录用户信息用于登录用户信息相关分析,在添加代码之前必须在打点管理界面上创建登录用户变量。
参数名称
类型
是否必须
说明
key
String
否
用户变量的标识符。限制:非空,长度<=50
value
String
否
用户变量的值。
限制:非空,长度<=1000
peopleVariables
JSONObject
否
用户变量用于用户信息相关的分析。
限制:非空,长度限制小于等于100(peopleVariables.length()<=100);
peopleVariables 内部不允许含有JSONObject或者JSONArray;
key长度<=50,value长度<=1000,值不能为空串,也就是""
示例代码
检验数据发送日志示例:
注意 t 字段值为 ppl,表示登录用户变量发送成功,需注意 var字段中的 key 和 value 是否符合预期,其它字段无需仔细验证。
4. 设置访问用户变量
当用户未登录时,定义用户属性变量,也可用于A/B测试上传标签。
当需要上报访问用户变量时,调用 setVisitor API。
发送访问用户信息用于访问用户信息相关分析,在添加代码之前必须在打点管理界面上创建访问用户变量。
版本支持:>=2.4.0
参数说明
参数说明
类型
是否必填
说明
visitorVar
JSONObject
是
不可使用嵌套的JSONObject对象,即为JSONObject中不可以放入JSONObject或者JSONArray;
key 长度<=50,value长度<=1000,值不能为空串,也就是""
检验数据发送日志示例
注意 t 字段值为 vstr,表示访问用户变量发送成功,需注意 var字段中的 key 和 value 是否符合预期,其它字段无需仔细验证。
5. 设置页面级变量
当需要上报页面级变量时,调用 setPageVariable API。
发送页面级别的维度信息,用于标记当前页面,在添加代码之前必须在打点管理界面上创建页面级变量。
注意确认当前页面,通过圈选方式最快定位当前页面,在当前页面埋点最稳定可靠,如果页面未确认,可能在Activity和Fragment嵌套的场景下埋点失败。如未能成功发送自定义页面变量,请参考”Android SDK集成FAQ > 无埋点API使用问题“
参数选择是当前被识别的页面对象,可能是 Activity 或 Fragment,可以使用 Mobile Debugger 或debug日志确认。
参数名称
类型
是否必须
说明
activity
Activity
是
当前页面访问事件(page事件)发送的页面
fragment
Fragment
否
当前页面访问事件(page事件)发送的页面
key
tring
否
页面级变量的标识符
限制:非空,长度<=50
value
String
否
页面级变量的值
限制:非空,长度<=1000
pageLevelvariables
JSONObject
否
页面级变的信息
限制:非null,键值对个数<=100(pageLevelVariable.length()<=100);
pageLevelVariable 内部不允许含有JSONObject或者JSONArray;
key 长度<=50,value长度<=1000,值不能为空串,也就是""
示例代码
检验数据发送日志示例:
注意 t 字段值为pvar,表示自定义事件发送成功,需注意 var字段中的 key 和 value 是否符合预期,其它字段无需仔细验证。
6. 设置转化变量
当需要上报转化变量时,调用 setEvar API。
发送一个转化信息用于高级归因分析,在添加代码之前必须在打点管理界面上创建转化变量。
参数说明
参数名称
类型
是否必须
说明
key
String
否
转化变量的标识符
限制:非空,长度<=50
value
String
否
转化变量的值
限制:非空,长度<=1000
conversionVariables
JSONObject
否
转化变量用于高级归因分析
限制:非空,键值对个数<=100(conversionVariables.length()<=100);
conversionVariables 内部不允许含有JSONObject或者JSONArray;
key 长度<=50,value长度<=1000,值不能为空串,也就是""
检验数据发送日志示例:
注意 t 字段值为 evar ,表示转化事件发送成功,需注意 var字段中的 key 和 value 是否符合预期,其它字段无需仔细验证。
7. 设置埋点事件和事件级变量
当需要上报埋点事件和事件级变量时,调用 track API。
发送一个埋点事件,在添加所需要发送的事件代码之前,需要在打点管理用户界面创建埋点事件以及事件级变量,并完成埋点事件和事件级变量的绑定。
参数名称
类型
是否必须
说明
eventId
String
是
事件标识符
eventLevelVariable
JSONObject
否
事件发生时所伴随的维度信息。
限制:非空,键值对个数<=100(eventLevelVariable.length()<=100);eventLevelVariable内部不允许含有JSONObject或者JSONArray;
key长度<=50,value长度<=1000,值不能为空字符串,也就是“”
示例代码
检验数据发送日志示例
注意 t 字段值为 cstm ,表示自定义事件发送成功,n 字段表示埋点事件的标识符,需注意 var字段中的 key 和 value 是否符合预期,其它字段无需仔细验证。
最后更新于
这有帮助吗?