Beacon API - iseekr/iseekr-beacon-server GitHub Wiki
Beacon API
概述
和其他第三方统计一样,统计的发送采用beacon的形式。JS SDK和手机客户端都基于该API发送请求。
设计上有几点说明:
- 为了节省发送body的大小,参数都采用缩写形式。
- 为了进一步节省网络带宽,对于非图片请求,发送成功服务器直接返回
204,即不包含任何消息体。 - 因浏览器端和客户端信息差异,对应的消息体参数有不相同的地方。
- url参数值省略
http://协议
基地址
下面提到的所有Beacon API的基地址为
http://iseekr.example.com/
统计请求说明
GET /x.gif
header 204
/x.gif?img=0 表示非图片请求,一般用于后端。返回
204/x.gif 默认为图片请求,一般用于前端需要做请求是否成功检测的时候(204不会触发图片load事件)。返回
200
/x.gif?debug=1 调试参数,当debug=1时,可以进入iseekr-log-viewer 后台实时查看是否详细的提交请求
请求参数
在SDK的接口参数中可以使用全称,以避免出错,但是在发送请求时务必转换成缩写。
公用参数有:
| key | 全称 | 说明 | 是否必须 | 备注 |
|---|---|---|---|---|
a |
appid |
站点id或者App id | 必须 | 查看站内Appid配置说明 |
i |
i |
对象,当前用户信息 | 必须,必须发送用户uid或者uuid。当有uid时使用uid,当没有uid时使用uuid | {uuid:"1"} 或者 {uid:"****"} |
s |
session |
会话id | 必须,使用时分秒,示例:080000,在一次会话内session id不变,第二次会话时要重新生成 | |
e |
event |
事件名称 | 必须 | 预定义事件请看下面 |
b |
basic |
浏览器or客户端信息 | 必须 | 浏览器和客户端差异参考下面文档 |
f |
fingerprint |
设备指纹,用以标识当前设备 | 必须,客户端和前端用尽量精确的方式来标识设备 | |
t |
timestamp |
否,事件触发时间, 时区为东八区 | 否,当log发送模式为多条发送时必须填写。当单条即时发送时不需要该参数。 | |
d |
details |
事件详细数据,对象 | 否 | 预定义事件的details参数请参照文档。当为页面上的统计时,d参数必须附带u(当前页面url) |
v |
custom values,对象 |
自定义变量 | 否 | 自定义变量的存活时间由实际场景确定 |
gk |
group key,字符 |
内容分组名字 | 否 | |
gv |
group value,字符 |
内容分组值 | 否 | 当指定gk时需要指定该值 |
i参数说明
uid和uuid两者必有一个
uid,可选,用户在网站的uiduuid,可选,为用户生成的uuid
la和lo必须同时发送
HTML5页面及微信页面都可以获取到用户经纬度
la,可选,latitude,经度lo,可选,longitude,纬度
ip参数将覆盖该条统计的默认ip,一般用于后端导入统计时
ip,可选
b参数说明
浏览器
b:{
u:'ua字符',// **可选**,ua,非后端数据导入时不需要
r:'1400x900', // resolution分辨率,中间为小写字母x,
n:'wifi' // 网络类型
}
客户端
b: {
v:'客户端版本',// version
s:'1.0', //sdk版本,方便出现有问题时时找到相应的版本
u:'Android 4.4.2;SM-G9009W Build',//**可选**,ua,非后端数据导入时不需要
r:'1440x900', // resolution分辨率
n:'wifi' // 网络类型
}
预定义事件说明
预定义事件类型
所有的预定义事件都以
$作为前缀,具体的参数参照后面文档。
$error错误监测$debugdebug信息保存$identify用uid或者uuid来识别当前用户,用于用户登录或者注册时从uuid信息升级为uid信息。已经保存的log将会转换uuid到uid。$signup注册$signin登录$page页面浏览$network网络类型$location地理位置$duration会话时长
预定义事件参数说明
$duration
用于精确的会话时长统计。一般用websocket实现。
d:{
d:100 // 时长,单位为**秒**
}
$network
当获取网络类型为异步时提交
d:{
n:'wifi'
}
$page
仅用于前端页面
参数说明:
u,即url,可选,页面地址,该地址可以不必跟浏览器的一致,为了易读和易于统计,可以自定义地址。r,即referrer,页面来源地址。当没有referrer时,可以为空或者不发送。f,可选,即fid,版块id,当存在fid时提交t,可选,即time,页面渲染时长,用于性能监测(页面头打点,结束打点)
$error
提交错误信息,无参数要求。
$identify
uuiduuid参数uiduid参数
服务端会根据uid获取用户信息
绑定uuid与uid
批量发送
当一个页面可能有多个事件统计,或者客户端出于性能考虑,希望延迟发送并且可以多个发送时,请使用批量发送接口。
GET /b.gif
Header 204
参数
多条统计以base64编码并用$$分隔。
?data=base64(统计的querystring)$$base64(统计的querystring)