Showing
1 changed file
with
47 additions
and
28 deletions
| 1 | 1、格式的定义 | 1 | 1、格式的定义 |
| 2 | -提交地址:URL,参考:MNS | 2 | +提交地址:URL?TOKEN=XXXX,参考:MNS |
| 3 | `method:POST` | 3 | `method:POST` |
| 4 | 4 | ||
| 5 | 事件格式(事件之间有序) | 5 | 事件格式(事件之间有序) |
| @@ -10,20 +10,22 @@ event定义(事件内部无序) | @@ -10,20 +10,22 @@ event定义(事件内部无序) | ||
| 10 | ```json | 10 | ```json |
| 11 | { | 11 | { |
| 12 | "app_key":"应用标示", | 12 | "app_key":"应用标示", |
| 13 | -"user_id":"用户标示", | 13 | +"user_id":"用户唯一标示,可以为空", |
| 14 | -"device_id":"设备标示", | 14 | +"device_id":"设备唯一标示(IDFA,OPENUDID)", |
| 15 | -"key":"事件名", | 15 | +"event_id":"事件唯一标示GUID", |
| 16 | +"last_event_id":"上一个事件的唯一标示GUID", | ||
| 17 | +"key":"自定义事件名称", | ||
| 16 | "time":"时间戳", | 18 | "time":"时间戳", |
| 17 | -"type":"事件方法", | 19 | +"type":"调取的方法", |
| 18 | "properties":{"自定义参数":"键值对的形式"} | 20 | "properties":{"自定义参数":"键值对的形式"} |
| 19 | } | 21 | } |
| 20 | ``` | 22 | ``` |
| 21 | 23 | ||
| 22 | -参数级别按先后顺序分为:系统级,全局级,用户级 | 24 | +参数级别按先后顺序分为:系统级,会话级,事件级 |
| 23 | 25 | ||
| 24 | * 系统级:系统启动时由SDK获取到的系统信息,固定以$开头 | 26 | * 系统级:系统启动时由SDK获取到的系统信息,固定以$开头 |
| 25 | - * 全局级:在整个APP的生命周期里的全局参数 | 27 | + * 会话级:在整个会话的生命周期里的全局参数(可以修改) |
| 26 | - * 用户级:在当前事件里的参数 | 28 | + * 事件级:在当前事件里的参数 |
| 27 | 29 | ||
| 28 | 最后上报的事件为这三个级别依次叠加后的结果。 | 30 | 最后上报的事件为这三个级别依次叠加后的结果。 |
| 29 | 31 | ||
| @@ -35,37 +37,54 @@ event定义(事件内部无序) | @@ -35,37 +37,54 @@ event定义(事件内部无序) | ||
| 35 | | $lib_version | 系统 | `1.2.0` | SDK库版本 | | 37 | | $lib_version | 系统 | `1.2.0` | SDK库版本 | |
| 36 | | $os | 系统 | `iPhone OS` | 操作系统 | | 38 | | $os | 系统 | `iPhone OS` | 操作系统 | |
| 37 | | $os_version | 系统 | `9.1` | 操作系统版本 | | 39 | | $os_version | 系统 | `9.1` | 操作系统版本 | |
| 38 | -| $model | 系统 | `iPod touch` or `x86_64` | 模具 | | 40 | +| $model | 系统 | `iPod touch` or `x86_64` | 硬件型号 | |
| 39 | -| $watch_model | 系统 | `Apple Watch 38mm` 不重要 | 手表模具 | | 41 | +| $watch_model | 系统 | `Apple Watch 38mm` 不重要 | 手表型号 | |
| 40 | | $screen_width | 系统 | `1024` | 屏幕宽度 | | 42 | | $screen_width | 系统 | `1024` | 屏幕宽度 | |
| 41 | | $screen_height | 系统 | `768` | 屏幕高度 | | 43 | | $screen_height | 系统 | `768` | 屏幕高度 | |
| 42 | | $manufacturer | 系统 | `Apple` | 制造商 | | 44 | | $manufacturer | 系统 | `Apple` | 制造商 | |
| 43 | | $app_version | 系统 | `655` | 编译号(Bundle version) | | 45 | | $app_version | 系统 | `655` | 编译号(Bundle version) | |
| 44 | | $app_release | 系统 | `1.0` | 语义化版本号(Bundle versions string, short) | | 46 | | $app_release | 系统 | `1.0` | 语义化版本号(Bundle versions string, short) | |
| 45 | | $ios_ifa | 系统 | `xxxxxxxx` | 苹果广告唯一标示 | | 47 | | $ios_ifa | 系统 | `xxxxxxxx` | 苹果广告唯一标示 | |
| 46 | -| $province | 系统 | `北京` | 省份 | | 48 | +| $province | 系统 | `北京` | 省份,可以忽略 | |
| 47 | -| $city | 系统 | `北京` | 城市 | | 49 | +| $city | 系统 | `北京` | 城市,可以忽略 | |
| 50 | +| $country | 系统 | `中国` | 国家,可以忽略 | | ||
| 48 | | $wifi | 全局 | `1` or `0` | 是否启用wifi | | 51 | | $wifi | 全局 | `1` or `0` | 是否启用wifi | |
| 49 | | $carrier | 全局 | `中国联通` | 运营商 | | 52 | | $carrier | 全局 | `中国联通` | 运营商 | |
| 50 | 53 | ||
| 51 | type的取值 | 54 | type的取值 |
| 52 | 55 | ||
| 53 | -| 类型 | 说明 | | 56 | +| 类型 | 说明 | 备注 | |
| 54 | -|------|------| | 57 | +|------|------|------| |
| 55 | -| begin_session | 应用启动 | | 58 | +| begin_session | 应用启动 |应用启动或进入前台时自动触发| |
| 56 | -| end_session | 应用关闭 | | 59 | +| end_session | 应用关闭 |应用启动退出到后台或者关闭时自动触发| |
| 57 | -| session_duration | 心跳 | | 60 | +| session_duration | 心跳 |应用每3分钟发出一次| |
| 58 | -| track | 普通监测 | | 61 | +| track | 普通监测 |只有这个事件才有key属性| |
| 59 | -| track_signup | 注册监测(服务器会对用户进行处理) | | 62 | +| track_signup | 注册监测(服务器会对用户进行处理) |用于第一次注册| |
| 60 | -| profile_set | 设置profile | | 63 | +| profile_set | 设置profile |批量存放properties为用户属性,覆盖所有已存在的属性| |
| 61 | -| profile_set_once | 设置一次profile | | 64 | +| profile_set_once | 设置一次profile |批量存放properties为用户属性,只有当属性不存在时才保存| |
| 62 | -| profile_unset | 取消设置profile | | 65 | +| profile_unset | 取消设置profile |批量删除已经存在的属性,如果不存在,则不删除| |
| 63 | -| profile_increment | profile自增长 | | 66 | +| profile_increment | profile自增长 |可以对已经存在的属性进行增减,必须已经存在,且为int或者float类型,参数可以为负数| |
| 64 | -| profile_append | profile追加 | | 67 | +| profile_append | profile追加 |这个是什么鬼?| |
| 65 | -| profile_delete | profile删除 | | 68 | +| profile_delete | profile删除 |注销了该用户| |
| 69 | + | ||
| 70 | + | ||
| 71 | +2、缓存机制 | ||
| 72 | + | ||
| 73 | +A. 离线缓存 | ||
| 74 | +所有离线事件均进行缓存,当有网络后,会批量发出这些事件。 | ||
| 75 | + | ||
| 76 | +B. 服务器确认 | ||
| 77 | +如果服务器未能确认成功接收事件,则隔一段事件后,需要重新发出 | ||
| 78 | + | ||
| 79 | +C. 服务器去重 | ||
| 80 | +服务器会记录已经发出事件的GUID,如果某GUID已经接收过,则不会将该事件再次记录,返回客户端消息成功接收(重复信息)。 | ||
| 81 | + | ||
| 82 | +D. 服务器重排列 | ||
| 83 | +服务器会定期梳理事件,尽可能保证last_event_id的事件在event_id的前面。如果出现循环,丢失等情况,则略过。 | ||
| 66 | 84 | ||
| 67 | 85 | ||
| 68 | 参考: | 86 | 参考: |
| 69 | -https://github.com/sensorsdata | 87 | + |
| 70 | -https://github.com/countly | 88 | +* https://github.com/sensorsdata |
| 71 | -http://help.aliyun.com/product/8315016_mns.html | 89 | +* https://github.com/countly |
| 90 | +* http://help.aliyun.com/product/8315016_mns.html |
-
Please register or login to post a comment