1. HTTP数据上报

本方案适用于不方便在App产品内直接集成Hubble SDK,但是对数据实时性要求又比较高的场景

具体的方式是,由App开发者在App运行时按照 “事件-用户” 模型组织数据并通过Hubble开放的http接口主动推送数据。目前,这种方式仅支持Android和iOS应用

1.1. 定义数据

事件数据

字段名 字段描述 数据类型 是否必填
userId 用户 ID string 必填
deviceUdid 设备 ID string 非必填
dataType 数据报文类型(默认外部事件 e) string 必填
sdkType sdk类型 (Android / iOS) string 必填
eventId 事件 ID string 必填
time 事件发生时间(绝对毫秒) long 必填
costTime 事件耗时(毫秒) int 非必填
appKey 应用标识 string 必填
sessionUuid 会话 ID string 非必填
ip 客户端ip string 非必填
country 国家 string 非必填
region 省份 string 非必填
city 城市 string 非必填
appVersion app版本 string 非必填
appChannel app渠道 string 非必填
devicePlatform 设备平台 string 非必填
deviceOs 操作系统 string 非必填
deviceOsVersion 操作系统版本 string 非必填
deviceModel 设备机型 string 非必填
deviceManufacturer 设备制造商 string 非必填
deviceResolution 设备分辨率 string 非必填
useWifi 是否使用wifi string 非必填
screenWidth 分辨率(宽) string 非必填
screenHeight 分辨率(高) string 非必填
deviceCarrier 网络运营商 string 非必填
networkType 联网类型 string 非必填
localeLanguage 本地语言 string 非必填
category 事件类别 string 非必填
label 事件标签 string 非必填
attributes 事件自定义属性 map 非必填
// 自定义事件demo数据
{
    "userId": "18921895133",
    "deviceUdid": "5cc9531c48a0e12a7143c13bee058166e9e9d8e1",
    "dataType": "e",
    "sdkType": "iOS",
    "eventId": "clickButton",
    "time": 1434556935000,
    "costTime": 20,
    "appKey": "MA-XXXX-437494F370B3",
    "sessionUuid": "1234-342423-232""ip": "172.0.0.1", // 用于解析下面的国家-省份-城市信息 最好填入
    "country": "中国",
    "region": "浙江",
    "city": "杭州",
    "appVersion": "3.2",
    "appChannel": "appstore",
    "devicePlatform": "iPad",
    "deviceOs": "iOS",
    "deviceOsVersion": "7.0",
    "deviceModel": "iPhone6",
    "deviceManufacturer": "Apple",
    "deviceResolution": "640x960",
    "userWifi": "true",
    "screenWidth": "640",
    "screenHeight": "960",
    "deviceCarrier": "中国移动",
    "networkType": "4G",
    "localeLanguage": "en",
    "category": "首页",
    "label": "我喜欢的",
    "attributes": {
        "userfrom": "baidu",
        "lastPage": "个人信息页"
    }
}

用户数据

字段名 字段描述 数据类型 是否必填
userId 用户ID string 必填
$account 用户账号 string 非必填
$realName 用户姓名 string 非必填
$birthday 用户生日 string 非必填
$age 用户年龄 int 非必填
$gender 用户性别 string 非必填
$country 常用地址-国家 string 非必填
$province 常用地址-省份 string 非必填
$city 常用地址-城市 string 非必填
attributes 用户自定义属性 map 非必填
// 用户demo数据 通过da_user_profile事件组织数据
{
    "eventId": "da_user_profile",
    "dataType": "ie",
    "appKey": "MA-TF52-SDDFE56U1233",
    "userId": "ABCDEF123456789",
    "attributes": {
        "$userProfile": {
            "$type": "profile_set" // 必带 说明是用户属性
            "$account": "hubbletest@163.com", // $开头的字段为公共字段
            "$realName": "王磊",
            "$birthday": "1990-09-10",
            "$age": 28,
            "$gender": "male",
            "$$country": "中国",
            "$province": "浙江",
            "$city": "杭州",
            "vip": "黄金",  // 非$开头字段为业务自定义字段
            "nickname":"小王王"
        }
    }
}

说明: 1. 事件数据和用户数据均定义成标准json格式,并且key区分大小写,请和上述文档保持一致 2. 最终发送数据时,json数据需要进行base64编码 3. 事件-用户数据字段说明中的非必填字段,建议开发同学在条件允许情况下竟可能的填入,方便后续在Hubble的各个分析功能中使用 4. 用户数据是通过da_user_profile事件进行组织的,所有的用户属性都设置到attrubutes.$userProfile字段中,$开头的字段为Hubble公共字段,解析时如果遇到$开头的非公共字段则直接丢弃。目前只支持基础类型字段,不支持maparray 5. 虽然本方案未直接使用SDK采集数据,但是仍然需要开发方发送sdkType字段,默认Android / iOS 6. 在定义数据时,请尽量使用公共字段,公共字段不满足业务需求时才自定义属性

1.2. 推送接口

数据发送接口说明

接口地址:https://hubble.netease.com/track/s/?data=base64_data

唯一参数:data

发送方式: get

请求头部:增加两个参数
    1. X-SHA1-APPKEY  APPKEY的SHA1加密值
    以java发送为例:
    httpGet.addHeader("X-SHA1-APPKEY", SHA1Util.encryptSHA(appkey));
    具体sha1加密,自行参考实现

    2. X-CLIENT-IP
    移动客户端IP,获取不到可以设置为空

发送数据demo

https://xxx.xxx.com/track/s/?data=eyJldmVudElkIjoidGhyZWFkLXRlc3QiLCJkYXRhVHlwZSI6ImUiLCJpcCI6IjEyMy4xMjMuMTIzLjEyMyIsInNka1R5cGUiOiJzZXJ2ZXItamF2YSIsImF0dHJpYnV0ZXMiOnsiJHRpbWUiOjE1MDE2NjUwMjk5MTYsIm9zIjoid2luZG93cyIsIm9zVmVyc2lvbiI6IjEwLjEuMyIsImlwIjoiMTIzLjEyMy4xMjMuMTIzIiwiQ2hhbm5lbCI6ImJhaWR1In0sInNka1ZlcnNpb24iOiIxLjAuMCIsImFwcEtleSI6Ik1BLTZSV0UtUVdIS0hFS0RGMTIiLCJ0aW1lIjoxNTAxNjY1MDI5OTE2LCJ1c2VySWQiOiJsaWJ1eWktdGVzdCJ9

注意:

如果你最终选择这种发送方式,请一定先与Hubble开发人员进行联系,为你进行详细说明

results matching ""

    No results matching ""