API Cloud埋点SDK

GitHub Demo: https://github.com/growingio/APICloud-growingio/tree/master/android/app

  • API Cloud 全版本支持

  • App适配最低系统版本:iOS 8及以上、Android 4.2-10

  • 不支持使用 Mobile Debugger ,请在配置文件中设置 debug 模式后查看日志

1. 配置config.xml文件

名称:GrowingIO

必要参数:accountId、URL Scheme

可选参数:trackerHost、reportHost、dataHost、gtaHost、wsHost、zone、channel、debug。

<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模式只支持静态配置,不支持动态配置。

2. 添加模块

模块包下载:

在API Cloud的开发控制台上选择应用,然后在界面右侧选择 端开发 > 模块。

在应用的模块配置下选择自定义模块页签下上传对用模块。

  • 模块名称需要和zip包名称一致。

  • 在自动定义模块中上传了压缩包,保存成功后。一定要点击添加模块后面的“+”,否则不是真正添加成功。添加成功后,去已添加模块中能看到刚刚添加的模块。

3. Android的额外操作

Android云编译Loader为AppLoader, 使用自定义模块时需要编译Android自定义loader, 否则会出现模块未绑定错误, 另外需要注意的是在使用自定义loader时 请勾选 使用升级环境编译选项。

具体步骤如下:

  1. 在API Cloud的开发控制台上选择应用,然后在界面右侧选择 端开发 > 模块。

在自定义loader页签下勾选使用升级环境编译

  1. 云编译时,请勾选使用升级环境编译。

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类型) ,事件标识符。

eventID 参数限制:非空,长度限制小于等于50;SDK 2.4.0以下版本不支持中文,仅支持0~9、a~z以及下划线,并且不能以数字开头。

key:eventLevelVariable(string类型,非必要key) value:(object类型) 。

事件发生时所伴随的维度信息。

限制:非空,长度限制小于等于100(eventLevelVariable.length()<=100);eventLevelVariable内部不允许含有JSONObject或者JSONArray;

key长度限制小于等于50,value长度限制小于等于1000,值不能为空字符串,也就是“”。

callback

函数

callback {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

转化变量用于高级归因分析

限制:非空,长度限制小于等于100(conversionVariables.length()<=100);

conversionVariables 内部不允许含有JSONObject或者JSONArray

key 长度限制小于等于50,value长度限制小等于1000,值不能为空串,也就是""。

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

用户变量用于用户信息相关的分析。

限制:非空,长度限制小于等于100(peopleVariables.length()<=100);

peopleVariables 内部不允许含有JSONObject或者JSONArray

key长度限制小于等于50,value长度限制小等于1000,值不能为空串,也就是""。

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){
//回调函数事件处理
});

设置登录用户ID

当用户登录之后调用setUserId API,设置登录用户ID。

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){
//回调函数事件处理
});

清除登录用户ID

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

不可使用嵌套的JSONObject对象,即为JSONObject中不可以放入JSONObject或者JSONArray

key 长度限制小于等于50,value长度限制小等于1000,值不能为空串,也就是""。

var gio = api.require('GrowingIO'); //引用模块
gio.setVisitor({"gender":"male","age":21});

常见问题

1. 提示无法检测到URL Scheme?

(1)查看 config.xml 是否配置正确。

(2)需要同步代码到云端,云编译生效

2. 模拟器无法test?

只能真机测试

3. 此模块是否含有IDFA?

包含IDFA,GrowingIO 使用IDFA 来做来源管理激活设备的精确匹配,让您更好的衡量广告效果。

4. 官网Web提示未检测到SDK?

请使用正式版包来操作几次。