REST_接入说明文档
一、说明
1.适用范围
热云TrackingIO作为国内第三方移动广告监测平台,能够更好的帮助广告主更精准的评估每次广告投放效果,以及帮助广告网络做广告系统的投放优化或业务数据的完善。
本文档适用于服务器报送数据。
2.统计说明
为了能够在接入过程中保持概念统一,针对通用概念做如下说明:
- 设备
指某台安装了应用的终端。
- 账号
指用户在某台设备上安装了应用之后,在应用中的唯一标识。
通常用作账号的标识符可以是用户注册应用时的唯一用户名(如邮件地址),也可以是用户注册时自动生成的唯一字符串。
- 报送逻辑
如遇多种事件请逐一报送,每条数据间隔2秒以上,请勿批量报送否则将可能造成归因异常。
二、接入流程
1.申请APPKEY
1)打开http://www.trackingio.com,使用您的热云账号进行登录。
2)进入“产品中心”,点击左上方“+新建产品”,完成产品创建,您将获得一串32位的16进制APPKEY;
如果您已经完成产品创建,请在如下位置获取APPKEY:“管理中心”-“产品中心”-“产品管理”-APPKEY
3)APPKEY为应用的唯一标识,用于数据报送。
注:为了保证您的数据安全,请勿泄露您的APPKEY。
2.数据报送
详见“三、数据报送说明”
3.测试
1)进入热云调试页面查看调试数据:
“管理中心” - “产品中心” - “产品管理” - “操作”–“调试”
注:热云SDK所有API接口的http response均以status:0表示成功,若不成功,会在返回的json里提示详细错误信息。
三、数据报送说明
1.注意事项
1)数据报送地址:http://log.trackingio.com
2)所有请求格式统一使用UTF-8编码,请求方式使用post。
3)所有必填参数,请务必上报,有下划线的参数必须携带下划线。
IOS必填参数,Android不需上报,
Android必填参数,IOS不需上报
4)_deviceid为基本参数,是用来记录用户设备身份信息(IOS获取idfa,Android获取IMEI或者AndroidID,但要保证一致)
5)_campaignid,默认填写“_default_”;
如果是分包模式(应用市场),则可自定义设置渠道ID。
该值必须与热云后台“广告监”-“推广管理”-“推广活动管理”-新建推广活动(分包)填写的渠道ID一一对应
6)报送的头信息中一定要有Content-Type=application/json参数。
2.统计用户首次安装打开应用:/receive/tkio/install
- 方法用途:
在用户第一次打开应用时调用,记录用户设备激活数据,只报送一次。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的APPKEY | |
context | 是 | HashMap | 上下文信息 |
上下文信息:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
_deviceid | 是 | String | 最长128位 | IOS:内容填写idfa的值。Android:内容填写imei的值,无则填写anroidid的值取值 |
_campaignid | 是 | String | 最长64位 | 用于标识推广渠道,支持英文、数字、下划线,默认填写_default_;分包(应用市场)模式,该值必须与热云后台“广告监”-“推广管理”-“推广活动管理”-新建推广活动(分包)填写的渠道ID一一对应 |
_idfa | IOS必填 | String | 广告标示符 | |
_imei | Android必填 | String | 手机唯一识别码 | |
_androidid | Android必填 | String | 手机唯一识别码 | |
_mac | Android必填 | String | 安卓mac地址 | |
_ip | 是 | String | 客户端IP,IPV4 | |
_ipv6 | 是 | String | 客户端IP,IPV6 | |
_tz | 是 | String | 时区,默认 +8 | |
_manufacturer | 是 | String | 设备品牌 | |
_ryos | 是(重要) | String | 设备是Android还是ios系统。如果投放广点通渠道,请务必填写该参数,否则会影响匹配精准度。 | |
_ryosversion | 投放adwords渠道必填,其他渠道否 | String | 设备系统的版本,例如10.1.2,请务必只传版本号,不要附加其他内容,如version | |
_rydevicetype | 是 | String | 设备类型如iphone5s、sansung-GT9300 | |
_network | 是 | String | 网络制式2G、3G、WIFI | |
_resolution | 是 | String | 分辨率 | |
_op | 是 | String | 运营商中国移动、中国联通、中国电信 | |
_app_version | 投放adwords渠道必填,其他渠道否 | String | app版本例如:1.0.0 | |
_lib_version | 投放adwords渠道必填,其他渠道否 | String | SDK版本,默认1.0.0 | |
_timestamp | 投放adwords渠道必填,其他渠道否 | long | 当前13位时间戳 |
- 示例代码:
注:jsonObject格式(下列为iOS应用示例,如需报送Android应用请去掉idfa。添加imei、androidid和mac参数)
{"appid":"xxxxxxxxxxxxxxxx","context":{"_deviceid":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_campaignid":"_default_","_idfa":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_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/tkio/startup
- 方法用途:
在用户每次打开应用时报送,记录用户启动应用数据。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的APPKEY | |
context | 是 | HashMap | 上下文信息 |
上下文信息:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
_deviceid | 是 | String | 最长128位 | IOS:内容填写idfa的值。Android:内容填写imei的值,无则填写anroidid的值 |
_idfa | IOS必填 | String | 广告标识 | |
_imei | Android必填 | String | 手机的唯一识别号码 | |
_androidid | Android必填 | String | ||
_ip | 是 | String | 客户端IP,IPV4 | |
_ipv6 | 是 | String | 客户端IP,IPV6 | |
_tz | 是 | String | 时区,默认 +8 | |
_ryosversion | 投放adwords渠道必填,其他渠道否 | string | 设备系统的版本,例如10.1.2,请务必只传版本号,不要附加其他内容,如version | |
_app_version | 投放adwords渠道必填,其他渠道否 | string | app版本例如:1.0.0 | |
_lib_version | 投放adwords渠道必填,其他渠道否 | string | SDK版本,默认1.0.0 | |
_timestamp | 投放adwords渠道必填,其他渠道否 | long | 当前13位时间戳 |
- 示例代码:
注:jsonObject格式(下列为iOS应用示例,如需报送Android应用请去掉idfa。添加imei和androidid参数)
{"appid":"xxxxxxxxxxxxxxxx","context":{"_deviceid":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfa":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_ip":"111.1.11.111","_tz":"+8"}}
服务返回json数据:
{"status":0}
4.统计用户注册方法:/receive/tkio/register
- 方法用途:
用于用户注册完成,报送应用注册事件。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的APPKEY | |
who | 是 | String | 最长64位 | 账号唯一标识,支持英文、数字、下划线 |
context | 是 | HashMap | 上下文信息 |
上下文信息:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
_deviceid | 是 | String | 最长128位 | IOS:内容填写idfa的值。Android:内容填写imei的值,无则填写anroidid的 |
_idfa | IOS必填 | String | 广告标识 | |
_imei | Android必填 | String | 手机的唯一识别号码 | |
_androidid | Android必填 | String | ||
_ip | 是 | String | 客户端IP,IPV4 | |
_ipv6 | 是 | String | 客户端IP,IPV6 | |
_tz | 是 | String | 时区,默认 +8 | |
_rydevicetype | 是 | String | 设备类型如iphone5s、sansung-GT9300 | |
_ryosversion | 投放adwords渠道必填,其他渠道否 | String | 设备系统的版本,例如10.1.2,请务必只传版本号,不要附加其他内容,如version | |
_app_version | 投放adwords渠道必填,其他渠道否 | String | app版本例如:1.0.0 | |
_lib_version | 投放adwords渠道必填,其他渠道否 | String | SDK版本,默认1.0.0 | |
_timestamp | 投放adwords渠道必填,其他渠道否 | long | 当前13位时间戳 |
- 示例代码:
注:jsonObject格式(下列为iOS应用示例,如需报送Android应用请去掉idfa。添加imei和androidid参数)
{"appid":"xxxxxxxxxxxxxxxx","who":"userid001","context":{"_deviceid":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfa":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_ip":"111.1.11.111","_tz":"+8"}}
服务返回json数据:
{"status":0}
5.统计用户登录方法:/receive/tkio/loggedin
- 方法用途:
用于用户登录完成、切换账号时,报送应用登录事件。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的APPKEY | |
who | 是 | String | 最长64位 | 账号唯一标识,支持英文、数字、下 |
context | 是 | HashMap | 上下文信息 |
上下文信息:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
_deviceid | 是 | String | 最长128位 | IOS:内容填写idfa的值。Android:内容填写imei的值,无则填写anroidid的 |
_idfa | IOS必填 | String | 广告标识 | |
_imei | Android必填,ios不填 | String | 手机的唯一识别号码 | |
_androidid | Android必填 | String | ||
_ip | 是 | String | 客户端IP,IPV4 | |
_ipv6 | 是 | String | 客户端IP,IPV6 | |
_tz | 是 | String | 时区,默认 +8 | |
_ryosversion | 投放adwords渠道必填,其他渠道否 | String | 设备系统的版本,例如10.1.2,请务必只传版本号,不要附加其他内容,如version | |
_app_version | 投放adwords渠道必填,其他渠道否 | String | app版本例如:1.0.0 | |
_lib_version | 投放adwords渠道必填,其他渠道否 | String | SDK版本,默认1.0.0 | |
_timestamp | 投放adwords渠道必填,其他渠道否 | long | 当前13位时间戳 |
- 示例代码:
注:jsonObject格式(下列为iOS应用示例,如需报送Android应用请去掉idfa。添加imei和androidid参数)
{"appid":"xxxxxxxxxxxxxxxx","who":"userid001","context":{"_deviceid":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfa":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_ip":"111.1.11.111","_tz":"+8"}}
服务返回json数据:
- {"status":0}
6.统计用户充值方法:/receive/tkio/payment
- 方法用途:
用于用户充值成功,统计充值数据,所有付费相关分析的数据报表均依赖此方法。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的APPKEY | |
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 | 广告标识 | |
_imei | Android必填 | String | 手机的唯一识别号码 | |
_androidid | Android必填 | String | ||
_ip | 是 | String | 客户端IP,IPV4 | |
_ipv6 | 是 | String | 客户端IP,IPV6 | |
_tz | 是 | String | 时区,默认 +8 | |
_rydevicetype | 是 | String | 设备类型如iphone5s、sansung-GT9300 | |
_ryosversion | 投放adwords渠道必填,其他渠道否 | String | 设备系统的版本,例如10.1.2,请务必只传版本号,不要附加其他内容,如version | |
_app_version | 投放adwords渠道必填,其他渠道否 | String | app版本例如:1.0.0 | |
_lib_version | 投放adwords渠道必填,其他渠道否 | String | SDK版本,默认1.0.0 | |
_timestamp | 投放adwords渠道必填,其他渠道否 | long | 当前13位时间戳 |
- 示例代码:
注:jsonObject格式(下列为iOS应用示例,如需报送Android应用请去掉idfa。添加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","_ip":"111.1.11.111","_tz":"+8"}}
服务返回json数据:
{"status":0}
7.统计用户订单方法:/receive/tkio/event
- 方法用途:
用于用户提交订单后,统计用户订单数据。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的APPKEY | |
what | 是 | String | 最长64位 | 必填,值为固定字符串"order" |
who | 是 | String | 账号唯一标识,支持英文、数字、下 | |
context | 是 | HashMap | 上下文信息 |
上下文信息
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
_deviceid | 是 | String | 最长128位 | IOS:内容填写idfa的值。Android:内容填写imei的值,无则填写anroidid的 |
_transactionid | 是 | String | 最长64位 | 交易流水号,请确保唯一。 |
_currencytype | 是 | String | 最长3位 | 货币类型,按照国际标准组织ISO 4217中规范的3位字母,例如CNY人民币、USD |
_currencyamount | 是 | float | 最长16位 | 支付的真实货币金额,人民币单位:元 |
_idfa | IOS必填 | String | 广告标识 | |
_imei | Android必填 | String | 手机的唯一识别号码 | |
_androidid | Android必填 | String | ||
_ip | 是 | String | 客户端IP,IPV4 | |
_ipv6 | 是 | String | 客户端IP,IPV6 | |
_tz | 是 | String | 时区,默认 +8 | |
_rydevicetype | 是 | String | 设备类型如iphone5s、sansung-GT9300 | |
_ryosversion | 投放adwords渠道必填,其他渠道否 | String | 设备系统的版本,例如10.1.2,请务必只传版本号,不要附加其他内容,如version | |
_app_version | 投放adwords渠道必填,其他渠道否 | String | app版本例如:1.0.0 | |
_lib_version | 投放adwords渠道必填,其他渠道否 | String | SDK版本,默认1.0.0 | |
_timestamp | 投放adwords渠道必填,其他渠道否 | long | 当前13位时间戳 |
- 示例代码:
注:jsonObject格式(下列为iOS应用示例,如需报送Android应用请去掉idfa。添加imei和androidid参数)
{"appid":"xxxxxxxxxxxxxxxx","who":"userid001","what":"order",
"context":{"_deviceid":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_transactionid":"t01020304","_currencytype":"CNY","_currencyamount":"6","_idfa":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_ip":"111.1.11.111","_tz":"+8"}}
服务返回json数据:
{"status":0}
8.统计用户自定义方法:/receive/tkio/event
- 方法用途:
用于统计用户在应用内的任意行为,如打开某个面板、点击某个Button、参与某个活动等。
eventName必须为event_1到event_12。
- 参数说明:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
appid | 是 | String | 创建产品时获得的32位字符长度的APPKEY | |
who | 是 | String | 最长64位 | 账号唯一标识,支持英文、数字、下 |
what | 是 | String | 最长32位 | 自定义事件名称,必须为event_1到event_12 |
context | 是 | HashMap | 键值对不能超过80 | 上下文信息,需要传 jsonObject |
上下文信息:
参数名 | 是否必填 | 参数类型 | 长度 | 说明 |
---|---|---|---|---|
_deviceid | 是 | String | 最长128位 | IOS:内容填写idfa的值。Android:内容填写imei的值,无则填写anroidid的 |
_idfa | IOS必填 | String | 广告标识,从钥匙链获取,若没有从系统获取防止重设idfa | |
_imei | Android必填 | String | 手机的唯一识别号码 | |
_androidid | Android必填 | String | ||
_bundleid | IOS必填 | String | 工程包名,bundleid字段 | |
_ip | 是 | String | 客户端IP,IPV4 | |
_ipv6 | 是 | String | 客户端IP,IPV6 | |
_tz | 是 | String | 时区,默认 +8 | |
_isreyundefaultevent | 是 | String | 识别是否自定义事件,默认传1。 | |
_ryosversion | 投放adwords渠道必填,其他渠道否 | String | 设备系统的版本,例如10.1.2,请务必只传版本号,不要附加其他内容,如version | |
_app_version | 投放adwords渠道必填,其他渠道否 | String | app版本例如:1.0.0 | |
_lib_version | 投放adwords渠道必填,其他渠道否 | String | SDK版本,默认1.0.0 | |
_timestamp | 投放adwords渠道必填,其他渠道否 | long | 当前13位时间戳 |
- 示例代码:
注:jsonObject格式(下列为iOS应用示例,如需报送Android应用请去掉idfa。添加imei和androidid参数)
{"appid":"xxxxxxxxxxxxxxxx","who":"userid001","what":"event_1","context":{"_deviceid":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_idfa":"3DEA635F-B24F-434B-833F-4ED028FEAEEF","_bundleid":"com.domainname.appname","_ip":"111.1.11.111","_tz":"+8"}}
- 服务返回json数据:
{"status":0}
9.服务器错误返回值
- 示例代码:
返回json结果:
{
"result":{
"who": "can not be null!" //缺少必填字段who
},
"status": -1 //正确为0,错误为-1
}
注:错误415,请检查头信息中是否有Content-Type=application/json参数
四、技术支持
如有任何问题,请及时联系我们的技术支持工程师:
技术支持邮箱:[email protected]
技术支持QQ:2785608528