帮助与文档

> >
netflix 앱

Server端API主要是用于客户在Server端进行数据收集和追踪,以HTTP API形式提供,能够适用各种编程语言。在Server端埋点的另外一个好处时,能够获取到更多的数据,而不仅仅局限于客户端的数据。但是缺点也是很明显的,不能获取用户的行为数据比如点击事件,拖曳事件。因此Server端API接口和客户端SDK配合使用,对用户的行为追踪更加详细。

我们在mob后台注册,并且进入后台添加应用(具体操作步骤可以查看这里),我们可以得到项目的appkey和appsecret。这对密钥主要用于项目的安全性校验,因此必须要保持它们的安全性。

在进行所有的HTTP API请求时,需要将appkey和appsecret放入request head中,以便服务端进行安全校验。如下:

在request header中添加以下字段进行安全校验:

名称 类型 是否必填 说明
ak string appkey,应用标识
security string appsecret,应用安全码

 

Server API主要提供了两个接口,用户注册和事件追踪接口。

用户注册接口,主要将用户信息注册到统计系统中,以便分析系统能够分析用户的行为和统计用户数量。接口如下:

 

请求地址: http://服务器地址/api/server/user/registry

或者 https://服务器地址/api/server/user/registry

请求方式:POST

名称 类型 是否必填 说明
userId String 用户的唯一标识。需要和事件追踪接口中的uid保持一致。
timestamp Long 时间戳。事件触发的时间
data Json对象 用户的详细信息

 

 

Java 使用Okhttp请求示例:

OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"userId\":\"xxx\",\"timestamp\":1498113527000,\"data\":{\"name\":\"tom\",\"age\":10,\"email\":\"tom@test.com\",\"sex\":\"男\",\"registryChannel\":\"mob官网\"}}");
Request request = new Request.Builder()
.url("http://服务器地址/api/server/user/registry")
.post(body)
.addHeader("ak", "986BNF3HbMO0d")
.addHeader("security", "JiL7uCk3gl94fp73IpEK6Bywk5pDbabe")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();

 

Shell终端测试代码:

curl --request POST \
--url http://服务器地址/api/server/user/registry \
--header 'ak: 986BNF3HbMO0d' \
--header 'content-type: application/json' \
--header 'security: JiL7uCk3gl94fp73IpEK6Bywk5pDbabe' \
--data '{"userId":"xxx","timestamp":1498113527000,"data":{"name":"tom","age":10,"email":"tom@test.com","sex":"男",       "registryChannel":"mob官网"}}'

 

事件追踪接口,用于获取用户触发的事件。它可以综合客户端上传数据和服务器端数据,能够获取更全面的数据。该接口支持批量事件上传,减少网络请求次数。接口如下:

 

请求地址:  http://服务器地址/api/server/event/track

或者 https://服务器地址/api/server/user/registry

请求方式:POST

请求参数:

名称 类型 是否必填 说明
uid String 用户唯一id。若用户未登录,则使用设备id
eventName String 事件名称。
timestamp Long 时间戳。事件发生的时间
data Json对象 事件的业务属性。如:请求的url,商品的价格等。
properties Json对象 预设属性。事件发生的环境,可以由客户端发送到Server端。

名称 类型 是否必填 说明
_trackChannel string 触发端
_version string 版本
_channel string 渠道
_networkType string 网络类型。
_carrier int 运营商编码。
_factory string 设备品牌
_model string 设备型号
_browserType string 浏览器品牌
_browserVersion string 浏览器版本
_plat int 操作系统平台。1=android,2=ios,3=wap,4=pc,5=server
_sysver string 操作系统版本号
_screenHeight string 屏幕高度
_screenWidth string 屏幕宽度
_userId string 用户id
_mobId string modid
_duid string 设备id
_country string 国家
_ip string ip
_longi string 经度
_lati string 纬度
_province string 省份
_city string 城市

 

请求返回错误码:

状态码 消息 说明
4109001 缺少必要的请求参数 缺少必要的请求参数
4109002 Appkey错误 缺少appkey参数或者appkey不存在
4109003 签名错误 缺少sign参数或者签名校验失败
4109004 User-Agent错误 缺少User-Agent参数或者格式错误
5109000 服务器内部错误 服务器发生未知错误
5109001 解压缩数据失败 解压缩数据失败
5109002 解密数据错误 解密请求数据失败
5109003 AES密钥错误 缺少key参数或者解密key失败

 

Java okhttp代码:

OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"eventList\":[ {\"uid\":\"1235622\", \"eventName\":\"viewProduct\", \"timestamp\":1508223620000, \"data\":{\"url\":\"/product/view\", \"name\":\"饮料\",\"price\":20.3 }, \"properties\":{\"_factory\":\"小米\", \"_model\":\"mi 6\", \"_browserType\":\"chrome\", \"_browserVersion\":\"20.23.0\",     \"_plat\":1,\"_networkType\":\"4g\", \"_ip\":\"127.0.0.1\",\"_sysver\":\"5.0\" }}]}");
Request request = new Request.Builder()
.url("http://服务器地址/api/server/event/track")
.post(body)
.addHeader("ak", "986BNF3HbMO0d")
.addHeader("security", "JiL7uCk3gl94fp73IpEK6Bywk5pDbabe")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();

Shell终端测试:

curl --request POST \
--url http://服务器地址/api/server/event/track \
--header 'ak: 986BNF3HbMO0d' \
--header 'content-type: application/json' \
--header 'security: JiL7uCk3gl94fp73IpEK6Bywk5pDbabe' \
--data '{"eventList":[{"uid":"1235622", "eventName":"viewProduct","timestamp":1508223620000,"data":{"url":"/product/view","name":"饮料","price":20.3},"properties":{"_factory":"小米", "_model":"mi 6","_browserType":"chrome","_browserVersion":"20.23.0","_plat":1,"_networkType":"4g","_ip":"127.0.0.1","_sysver":"5.0"}}]}'

다운로드 오토 캐드 2016 다운로드 다운로드 다운로드

相关文档