参考:https://zhuanlan.zhihu.com/p/94036354
第一部分 数据分类
1、日志数据 (动态数据)
记录用户访问、点击、预览和分享等行为的数据。
用户清理了缓存、打开了新闻等行为等。
2、业务数据 (静态数据)
记录用户在使用APP过程中的状态变化的数据。
比如用户的个人信息数据更新、日程安排数据变更等
第二部分 埋点数据组成
1、环境数据
用户使用环境信息,一般表示设备的信息,如用户手机型号,系统版本,网络状态等以及和apk版本信息,如apk版本号,下载渠道等。
2、公共数据
即所有用户行为日志中的公共部分,如时间戳,会话id等。
3、业务数据
如上报一个点击关注别人按钮的事件,需要知道关注者,被关注者,关注成功或失败等。
数据举例
环境数据
"Common":{
"imei": "12222",//国际移动设备识别号
"imsi": "12222",//国际移动设备识别码
"brand": "Huawei",//手机品牌
"client_version_code": "12222",//apk版本号
"channel": "google",//下载渠道
"version_code": 2666,//apk包自增序号
"os_version":"4.4.2",//手机系统版本号
"Model":"Huawei P20",//手机型号
"net_type":"2G",//网络状态
"deviceid":"1038d96a-e615-4b1b-9fc3-a38cc427f927",//设备id
"sp_code":"12333",//运营商编码
"platform":"android", //"android","iOS"
"session_id":"111",//会话id
"event_id":"111",//事件序号
"system_language":"1222", //手机系统语言
"client_ip":"111",//ip地址
"country":"CN"//国家
}
公共数据:
"Common":{
"user_id":"1222",//用户id,也是该案例中的
"client_time":"yyyy-mm-dd hh:mm:ss", //事件发生时间
"session_id":"1222", //会话id
"event_id":"1",//事件序号,从1开始自增
"event_name":"click_to_follow"//事件名字
}
业务数据:
{
"be_followeder_id":"1222",
"followe_results":"success"
}
第三部分 数据上报机制
1、及时上报
对于比较重要的数据,或者对实时性要求比较高的数据,可以采用实时上报。即数据产生后,就上传上报。
比如登录完成事件
2、延迟上报
对于发生比较频繁,并且对实时性要求并不高的数据,可以采用延时上报。可以选择在固定时间区间上传上报。
比如浏览页面次数、打开某一个功能次数
第四部分 埋点事件举例
1、PV事件
埋点需求:app所有页面的访问事件,主要统计每个页面的事件发生的次数(PV)
、 去重后的用户数(UV)
和页面停留时长
触发机制:页面加载完成
上报机制:一分钟一次聚合上报;上报失败,保存本地,客户端每次(断网等原因)重新连接服务器时,即时上报
{
"Common":{"环境数据"},
"Common":{"公共数据"},
"page_id":1,//页面id或者页面名称
"pre_page_id":2, //上个页面的名称
"page_duration":1000 //单位:毫秒
}
2、播放事件
埋点需求:用户观看视频事件,主要用户统计vv数
,uv数(unique view
)、vv分布
、人均vv
,vv时长
、卡顿比
、完播率
触发机制:视频拉出第一帧
上报机制:播放结束立即上报(上滑切换视频);上报失败,保存本地,客户端每次(断网等原因)重新连接服务器时,即时上报
{
"Common":{"坏境数据"},
"Common":{"公共数据"},
"video_id":"1222",//视频id
"counter":222,//播放百分比
"play_complete":11,//完整播放次数
"play_duration":100,//播放时长,单位毫秒
"delay_time":2000,//表示首帧缓冲时长(一般无卡顿的视频也会有解码过程导致首帧延时)
"buffer_time":2000,//总缓冲时长,不包括首帧缓冲时长
"buffer_count":2,//总缓冲次数,不包括首帧缓冲次数
"cdn_host":"1222"// cdn地址,如有不同cdn时可选,主要用户对比各cdn的流畅度
}
第五部分 第三方埋点SDK
友盟统计、腾讯移动分析、百度统计等。
自己开发和使用第三方SDK的对比
1、研发成本:前端、后端,数据统计、分类、筛选功能
2、运营成本:要看自己开发的平台和第三方平台的对比
3、稳定性:自己的服务器稳定性比较高,如果有问题可以随时解决。第三方服务器如果宕机,要看平台的反应速度。
4、个性化:自己开发的支持各种
对比 | 自己研发 | 第三方平台 |
---|---|---|
研发成本 | ||
维护成本 | ||
运营成本 | 一样 | 一样 |
稳定性 | 中 | |
个性化 | 中 | |
隐私风险 |
待确定的问题:
1、需要统计哪些数据?
2、需要怎么展示数据?
3、拿到数据后怎么使用?
4、谁去分析数据?
5、数据对于我们来说有哪些好处?