REST_接入说明文档
一、说明
1.适用范围
热云灵犀产品作为国内多维度的用户行为分析平台,能够更好的帮助客户精细化了解用户、寻找增长点、搭建多维数据分析模型,帮客户实现数据驱动。
本文档适用于服务器报送数据。
2.统计说明
为了能够在接入过程中保持概念统一,针对通用概念做如下说明:
- 设备
指某台安装了应用的终端。
- 账号
指用户在某台设备上安装了应用之后,在应用中的唯一标识。
通常用作账号的标识符可以是用户注册应用时的唯一用户名(如邮件地址),也可以是用户注册时自动生成的唯一字符串。
二、接入流程
1.申请APPKEY
1)打开http://io.reyun.com/login.html,使用您的热云灵犀账号进行登录。
2)进入“产品中心”,点击左上方“+新建产品”,完成产品创建,您将获得一串32位的16进制APPKEY;
如果您已经完成产品创建,请在如下位置获取APPKEY:“全部产品按钮”-“对应产品”-APPKEY
3)APPKEY为应用的唯一标识,用于集成到SDK中。
注:为了保证您的数据安全,请勿泄露您的APPKEY。
2.数据报送
详见“三、数据报送说明”
3.测试
在灵犀系统-工具-日志流中查看数据是否报送成功。
注:“热云SDK所有API接口的http response均以status:0表示成功,若不成功,会在返回的json里提示详细错误信息。
三、数据报送说明
1.注意事项
1)数据报送地址:http://iolog.reyun.com
2)所有请求格式统一使用UTF-8编码,请求方式使用post。
3)所有必填参数,请务必上报,有下划线的参数必须携带下划线。
IOS必填参数,Android不需上报,
Android必填参数,IOS不需上报
4)_deviceid为基本参数,是用来记录用户设备身份信息(IOS获取idfa,Android获取IMEI或者AndroidID,但要保证一致)
6)报送的头信息中一定要有Content-Type=application/json参数。
7)灵犀的计算是基于用户账号,所以请务必上报注册事件。
2.统计用户首次安装打开应用:/receive/analyze/install
- 方法用途:
在用户第一次打开应用时调用,记录用户设备激活数据,只报送一次。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的APPK | |
context | 是 | HashMap | 上下文信息 |
上下文信息:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
_deviceid | 是 | String | 最长128位 | IOS:内容填写idfa的值。Android:内容填写imei的值,无则填写anroidid的值取值 |
_idfa | IOS必填 | String | 广告标示符 | |
_idfv | IOS必填 | String | Vindor标示符 | |
_imei | Android必填 | String | 手机唯一识别码 | |
_androidid | Android必填 | String | ||
_ip | 是 | String | 客户端IP | |
_tz | 是 | String | 时区,默认 +8 |
- 示例代码:
注:jsonObject格式(下列为iOS应用示例,如需报送Android应用请去掉idfa,idfv。添加imei和androidid参数)
{"appid":"xxxxxxxxxxxxxxxx","context":{"_deviceid":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_campaignid":"_default_","_idfa":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfv":"A491B28D-F3FE-4DC2-B352-A38146DE0A19","_ip":"111.1.11.111","_tz":"+8","_manufacturer":"apple","_ryos":"ios","_ryosversion":"11.1.1","_rydevicetype":"iphone7","_network":"wifi","_resolution":"1334*750","_op":"中国移动"}}
服务器返回json数据:
{"status":0}
3.统计用户打开应用:/receive/analyze/startup
- 方法用途:
在用户每次打开应用时报送,记录用户启动应用数据。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的AP | |
context | 是 | HashMap | 上下文信息 |
上下文信息:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
_deviceid | 是 | String | 最长128位 | IOS:内容填写idfa的值。Android:内容填写imei的值,无则填写anroidid的值 |
_idfa | IOS必填 | String | 广告标识 | |
_idfv | IOS必填 | String | Vindor标示符 | |
_imei | Android必填 | String | 手机的唯一识别号码 | |
_androidid | Android必填 | String | ||
_ip | 是 | String | 客户端IP | |
_tz | 是 | String | 时区,默认 +8 |
- 示例代码:
注:jsonObject格式(下列为iOS应用示例,如需报送Android应用请去掉idfa,idfv。添加imei和androidid参数)
{"appid":"xxxxxxxxxxxxxxxx","context":{"_deviceid":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfa":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfv":"A491B28D-F3FE-4DC2-B352-A38146DE0A19","_ip":"111.1.11.111","_tz":"+8"}}
服务返回json数据:
{"status":0}
4.统计用户注册方法:/receive/analyze/register
- 方法用途:
用于用户注册完成,报送应用注册事件。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的AP | |
who | 是 | String | 最长64位 | 账号唯一标识,支持英文、数字、下划线 |
context | 是 | HashMap | 上下文信息 |
上下文信息:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
_deviceid | 是 | String | 最长128位 | IOS:内容填写idfa的值。Android:内容填写imei的值,无则填写anroidid的 |
_idfa | IOS必填 | String | 广告标识 | |
_idfv | IOS必填 | String | Vindor标示符 | |
_imei | Android必填 | String | 手机的唯一识别号码 | |
_androidid | Android必填 | String | ||
_ip | 是 | String | 客户端IP | |
_tz | 是 | String | 时区,默认 +8 |
- 示例代码:
注:jsonObject格式(下列为iOS应用示例,如需报送Android应用请去掉idfa,idfv。添加imei和androidid参数)
{"appid":"xxxxxxxxxxxxxxxx","who":"userid001","context":{"_deviceid":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfa":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfv":"A491B28D-F3FE-4DC2-B352-A38146DE0A19","_ip":"111.1.11.111","_tz":"+8"}}
服务返回json数据:
{"status":0}
5.统计用户登录方法:/receive/analyze/loggedin
- 方法用途:
用于用户登录完成、切换账号时,报送应用登录事件。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的AP | |
who | 是 | String | 最长64位 | 账号唯一标识,支持英文、数字、下 |
context | 是 | HashMap | 上下文信息 |
上下文信息:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
_deviceid | 是 | String | 最长128位 | IOS:内容填写idfa的值。Android:内容填写imei的值,无则填写anroidid的 |
_idfa | IOS必填 | String | 广告标识 | |
_idfv | IOS必填 | String | Vindor标示符 | |
_imei | Android必填,ios不填 | String | 手机的唯一识别号码 | |
_androidid | Android必填 | String | ||
_ip | 是 | String | 客户端IP | |
_tz | 是 | String | 时区,默认 +8 |
- 示例代码:
注:jsonObject格式(下列为iOS应用示例,如需报送Android应用请去掉idfa,idfv。添加imei和androidid参数)
{"appid":"xxxxxxxxxxxxxxxx","who":"userid001","context":{"_deviceid":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfa":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfv":"A491B28D-F3FE-4DC2-B352-A38146DE0A19","_ip":"111.1.11.111","_tz":"+8"}}
服务返回json数据:
- {"status":0}
6.统计用户充值方法:/receive/analyze/payment
- 方法用途:
用于用户充值成功,统计充值数据,所有付费相关分析的数据报表均依赖此方法。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的AP | |
who | 是 | String | 最长64位 | 账号唯一标识,支持英文、数字、下 |
context | 是 | HashMap | 上下文信息 |
上下文信息
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
_deviceid | 是 | String | 最长128位 | IOS:内容填写idfa的值。Android:内容填写imei的值,无则填写anroidid的 |
_transactionid | 是 | String | 最长64位 | 交易流水号,请确保唯一。 |
_paymenttype | 是 | String | 最长16位 | 支付类型,例如支付宝(alipay),银联(unionpay),微信支付(weixinpay),易宝支付(yeepay),paymentType不能填写:FREE(FREE不统计付费) |
_currencytype | 是 | String | 最长3位 | 货币类型,按照国际标准组织ISO 4217中规范的3位字母,例如CNY人民币、USD |
_currencyamount | 是 | float | 最长16位 | 支付的真实货币金额,人民币单位:元 |
_idfa | IOS必填 | String | 广告标识 | |
_idfv | IOS必填 | String | Vindor标示符 | |
_imei | Android必填 | String | 手机的唯一识别号码 | |
_androidid | Android必填 | String | ||
_ip | 是 | String | 客户端IP | |
_tz | 是 | String | 时区,默认 +8 |
- 示例代码:
注:jsonObject格式(下列为iOS应用示例,如需报送Android应用请去掉idfa,idfv。添加imei和androidid参数)
{"appid":"xxxxxxxxxxxxxxxx","who":"userid001","context":{"_deviceid":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_transactionid":"t01020304","_paymenttype":"alipay","_currencytype":"CNY","_currencyamount":"6","_idfa":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfv":"A491B28D-F3FE-4DC2-B352-A38146DE0A19","_ip":"111.1.11.111","_tz":"+8"}}
服务返回json数据:
{"status":0}
7.统计用户自定义方法:/receive/analyze/event
- 方法用途:
用于统计用户在应用内的任意行为,如打开某个面板、点击某个Button、参与某个活动等。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的AP | |
who | 是 | String | 最长64位 | 账号唯一标识,支持英文、数字、下 |
what | 是 | String | 最长32位 | 自定义事件名称,支持英文、数字、下划线 |
context | 是 | HashMap | 键值对不能超过80 | 上下文信息,需要传 jsonObject |
上下文信息:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
_deviceid | 是 | String | 最长128位 | IOS:内容填写idfa的值。Android:内容填写imei的值,无则填写anroidid的 |
_idfa | IOS必填 | String | 广告标识,从钥匙链获取,若没有从系统获取防止重设idfa | |
_idfv | IOS必填 | String | Vindor标示符 | |
_imei | Android必填 | String | 手机的唯一识别号码 | |
_androidid | Android必填 | String | ||
_bundleid | IOS必填 | String | 工程包名,bundleid字段 | |
_ip | 是 | String | 客户端IP | |
_tz | 是 | String | 时区,默认 +8 |
您也可以为用户任意添加所需的属性,如:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
product_id | 否 | String | 商品ID | |
product_name | 否 | String | 商品名 | |
product_classify | 否 | String | 商品类别 | |
product_price | 否 | String | 商品价格 |
- 示例代码:
注:jsonObject格式(下列为iOS应用示例,如需报送Android应用请去掉idfa,idfv。添加imei和androidid参数)
{"appid":"xxxxxxxxxxxxxxxx","who":"userid001","what":"exception","context":{"_deviceid":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfa":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfv":"A491B28D-F3FE-4DC2-B352-A38146DE0A19","_bundleid":"com.domainname.appname","_ip":"111.1.11.111","_tz":"+8"}}
- 服务返回json数据:
{"status":0}
8.统计用户属性方法:/receive/analyze/profile
- 方法用途:
用于统计用户的profile信息。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 参数长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的AP | |
who | 是 | String | 最长64位 | 账号唯一标识,支持英文、数字、下 |
what | 是 | String | 最长32位 | 自定义事件名称,支持英文、数字、下划线 |
context | 是 | HashMap | 上下文信息 |
- 上下文信息:
我们预定义了一些常用的用户属性,你可以直接使用:
参数名 | 是否必填 | 参数类型 | 参数长度 | 说明 |
---|---|---|---|---|
_ip | 是 | String | 客户端IP | |
_tz | 是 | String | 时区,默认 +8 | |
_name | 否 | String | 用户名 | |
_nickname | 否 | String | 昵称 | |
_birthday | 否 | DateTime | 生日yyyy-MM-dd | |
_gender | 否 | String | 性别 | |
__marital_status | 否 | String | 婚姻状况 | |
_hometown | 否 | String | 家乡 | |
_profession | 否 | String | 职业 | |
_industry | 否 | String | 行业 | |
_school | 否 | String | 学校 | |
_degree | 否 | String | 学历 | |
_tel | 否 | String | 手机号 | |
_citizen_id | 否 | String | 身份证号 | |
_email | 否 | String | 邮箱 | |
_wechat | 否 | String | 微信 | |
_weibo | 否 | String | 微博 | |
_qq" | 否 | String | ||
_first_language | 否 | String | 第一语言 | |
_city | 否 | String | 城市 | |
_province | 否 | String | 省份 | |
_country | 否 | String | 过节 | |
_source | 否 | String | 来源 |
您也可以为用户任意添加所需的属性,如:
参数名 | 是否必填 | 参数类型 | 参数长度 | 说明 |
---|---|---|---|---|
_ hobby | 否 | String | 爱好 |
9.服务器错误返回值
- 示例代码:
返回json结果:
{
"result":{
"who": "can not be null!" //缺少必填字段who
},
"status": -1 //正确为0,错误为-1
}
注:错误415,请检查头信息中是否有Content-Type=application/json参数
四、技术支持
如有任何问题,请及时联系我们的技术支持工程师:
技术支持邮箱:[email protected]
技术支持QQ:2785608528