API Cloud埋点SDK集成

anwei发表于:2019年12月06日 19:43:26

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

2. 添加模块

模块包下载:

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

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

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

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

-Lo08UtW7H58ehFKeZ4g-LsoumArTnMT7-orJ-oC-Lsp2AlaNVm_OTYtL6tlimage.png

3. Android的额外操作

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

具体步骤如下:

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

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

-Lo08UtW7H58ehFKeZ4g-LsoumArTnMT7-orJ-oC-LspAG-8zyBYREeQCwkOimage.png

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

-Lo08UtW7H58ehFKeZ4g-LsoumArTnMT7-orJ-oC-LspAt5tv1SAJJtHcS_Nimage.png

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

设置登录用户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. 如何查看发送的数据?

您可以使用GrowingIO官网提供的 Mobile Debugger 工具来查看。

4. 此模块是否含有IDFA?

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

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

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