API Cloud埋点SDK
GitHub Demo:https://github.com/growingio/APICloudgrowingio/tree/master/android/app
API Cloud 全版本支持
App适配最低系统版本:iOS 8及以上、Android 4.2-10
1. 配置config.xml文件
名称:GrowingIO
必要参数:accountId、URL Scheme
可选参数:trackerHost、reportHost、dataHost、gtaHost、wsHost、zone
<feature name="GrowingIO"> <param name="android_accountId" value="xxxxx"/> <param name="ios_accountId" value="xxxx"/> <param name="ios_urlScheme" value="xx ios项目的urlScheme xx"/> <param name="android_urlScheme" value="xx android项目的urlScheme xx"/> <param name="trackerHost" value="xxxxx"/> <param name="reportHost" value="xxxxx"/> <param name="dataHost" value="xxxxx"/> <param name="gtaHost" value="xxxxx"/> <param name="wsHost" value="xxxxx"/> <param name="zone" value="xxxxx"/> <param name="channel" value="xxxx"/> <param name="debug" value="true or false"/> </feature> <preference name="urlScheme" value=" xx ios项目的urlScheme x " /> <preference name="urlScheme" value=" xx android项目的urlScheme x " />
API Cloud的debug模式只支持静态配置,不支持动态配置。
模块包下载:
在API Cloud的开发控制台上选择应用,然后在界面右侧选择 端开发 > 模块。
在应用的模块配置下选择自定义模块页签下上传对用模块。
模块名称需要和zip包名称一致。
在自动定义模块中上传了压缩包,保存成功后。一定要点击添加模块后面的“+”,否则不是真正添加成功。添加成功后,去已添加模块中能看到刚刚添加的模块。
Android云编译Loader为AppLoader, 使用自定义模块时需要编译Android自定义loader, 否则会出现模块未绑定错误, 另外需要注意的是在使用自定义loader时 请勾选 使用升级环境编译选项。
具体步骤如下:
在API Cloud的开发控制台上选择应用,然后在界面右侧选择 端开发 > 模块。
在自定义loader页签下勾选使用升级环境编译。
2. 云编译时,请勾选使用升级环境编译。
4. 插件API
初始化
gio.init();
此接口为Android初始化, 在require后调用,iOS不需要,iOS已自动初始化建议在require GrowingIO时调用此接口
vargio =null; apiready=function(){ gio =api.require('GrowingIO'); gio.init(); }
gio.setGeoLocation(location);
参数名 | 类型 | 是否必填 | 参数描述 |
location | object | 是 | 经纬度 |
调用示例:
var gio = api.require('GrowingIO'); //引用模块 var param = {"longitude": longitude, "latitude": latitude} gio.setGeoLocation(param);
gio.track(event, callback);
参数名 | 类型 | 是否必填 | 参数描述 |
event | object | 是 | key:eventId(string类型,必要key) value:(string类型) key:eventLevelVariable(string类型,非必要key) value:(object类型) |
callback | 函数 | 否 | allback {function (ret)}:执行完读取操作后的回调函数。 ret 为 callback 函数的参数,有两个属性: status:结果2种 true, false 都为布尔类型 msg:结果string类型 |
调用示例:
var gio = api.require('GrowingIO'); //引用模块 gio.track({ eventId: 'GIOKey' },function(ret, err){ //回调函数事件处理 });
gio.setEvar(conversionVariables,callback);
参数名 | 类型 | 是否必填 | 参数描述 |
conversionVariables | object | 是 | |
callback | 函数 | 否 | callback {function (ret)}:执行完读取操作后的回调函数。 ret 为callback 函数的参数,有两个属性: status:结果2种true, false 都为布尔类型 msg:结果string类型 |
调用示例:
var gio = api.require('GrowingIO'); //引用模块 gio.setEvar({ "ekey":"evalue","Date":"2018-07-02" },function(ret, err){ //回调函数事件处理 });
gio.setPeopleVariable(peopleVariables,callback);
参数名 | 类型 | 是否必填 | 参数描述 |
peopleVariables | object | 是 | 登录用户变量 |
callback | 函数 | 否 | callback {function (ret)}:执行完读取操作后的回调函数。 ret 为callback 函数的参数,有两个属性: status:结果2种true, false 都为布尔类型 msg:结果string类型 |
调用示例:
var gio = api.require('GrowingIO'); //引用模块 gio.setPeopleVariable({ "ekey":"evalue","Date":"2018-07-02" },function(ret, err){ //回调函数事件处理 });
gio.setUserId(userIdObject,callback);
参数名 | 类型 | 是否必填 | 参数描述 |
userIdObject | object | 是 | key:userId(string类型,必要key) value:(string或者number类型) |
callback | 函数 | 否 | callback {function (ret)}:执行完读取操作后的回调函数。 ret 为 callback 函数的参数,有两个属性: status:结果2种true, false 都为布尔类型 msg:结果string类型 |
调用示例:
var gio = api.require('GrowingIO'); //引用模块 gio.setUserId({ "userId":"GIO" },function(ret, err){ //回调函数事件处理 });
gio.clearUserId(callback);
参数名 | 类型 | 是否必填 | 参数描述 |
callback | 函数 | 否 | callback {function (ret)}:执行完读取操作后的回调函数。 ret 为callback 函数的参数,有两个属性: status:结果2种true, false 都为布尔类型 msg:结果string类型 |
调用示例:
var gio = api.require('GrowingIO'); //引用模块 gio.clearUserId(function(ret, err){ //回调函数事件处理 });
当用户未登录时,定义用户属性变量,也可用于A/B测试上传标签。
gio.setVisitor(visitorVar);
参数名 | 类型 | 是否必填 | 参数描述 |
visitorVar | Object | 是 | 不可使用嵌套的 key 长度限制小于等于50,value长度限制小等于1000,值不能为空串,也就是""。 |
调用示例:
var gio = api.require('GrowingIO'); //引用模块 gio.setVisitor({"gender":"male","age":21});
(1)查看 config.xml 是否配置正确。
(2)需要同步代码到云端,云编译生效
只能真机测试
您可以使用GrowingIO官网提供的 Mobile Debugger 工具来查看。
包含IDFA,GrowingIO 使用IDFA 来做来源管理激活设备的精确匹配,让您更好的衡量广告效果。
请使用正式版包来操作几次。