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,可选,用户在网站的uid
  • uuid,可选,为用户生成的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 错误监测
  • $debug debug信息保存
  • $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

  • uuid uuid参数
  • uid uid参数

服务端会根据uid获取用户信息

绑定uuid与uid

批量发送

当一个页面可能有多个事件统计,或者客户端出于性能考虑,希望延迟发送并且可以多个发送时,请使用批量发送接口。

GET /b.gif
Header 204

参数

多条统计以base64编码并用$$分隔。

?data=base64(统计的querystring)$$base64(统计的querystring)