3个重要的原生app数据埋点

第一部分 数据分类

在我目前接触到的数据领域里面上,我跟小姬一样,也是将数据分为以下两类,只是说法略有不同

1.日志数据,记录了用户访问、浏览、点击等发生了行为动作的埋点数据日志;

2.业务数据,记录了用户使用产品过程中发生的状态变化的业务库数据表,如用户数据表,商品详情表;

通俗的说,就是用户发生的行为动作(动态)和用户的状态(静态)的两种类型数据

进行数据埋点,就是为了记录下用户再什么场景下,做了什么动作,进而为后续的分析用户意图提供依据。

第二部分 埋点数据的组成和上报机制

一、埋点数据的3个组成部分

1.环境数据:用户使用环境信息,一般表示设备的信息,如用户手机型号,系统版本,网络状态等以及和apk版本信息,如apk版本号,下载渠道;

2.公共数据:即所有用户行为日志中的公共部分,如时间戳,会话id等

3.业务数据:如上报一个点击关注别人按钮的事件,需要知道关注者,被关注者,关注成功或失败等

举个例子,以原生app为例,一般要记录以下信息:

坏境数据

"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"

}

二、数据上报机制

上报机制比较灵活选择,但是由于客户端数据有延迟的特性,比较重要的数据可以选择立即上报,避免因为断网、应用关闭进程等原因丢失实时数据;一般的数据可以选择聚合上报,几十秒或者一分钟一次聚合都行,因为频繁上报可能会占用用户的流量,影响用户的正常的产品使用

第三部分 3个重要的数据埋点

1.PV事件

埋点需求:app所有页面的访问事件,主要统计每个页面的pv、uv和页面停留时长

触发机制: 页面加载完成

上报机制:一分钟一次聚合上报;上报失败,保存本地,客户端每次(断网等原因)重新连接服务器时,即时上报

{

  "Common":{"坏境数据"},

  "Common":{"公共数据"},

  "page_id":1,//页面id或者页面名称

  "pre_page_id":2, //上个页面的名称

  "page_duration":1000 //单位:毫秒,

}

疑问1:在书阿里巴巴《大数据之路》中,分析页面访问路径的时候会有页面的回退行为干扰到分析,故原书中讲“所以针对这种场景,我们做了特殊的设计,利用页面的生命周期,识别页面的复用,配合栈的深度来识别是否是回填行为”,此话怎讲?

疑问2:原生app的页面是怎么定义的?如通知栏是否可以定义为一个页面

疑问3:session和一次启动退出的区别是什么?以原生app为例,如抖音、微信等,session的过期时间设置为多长比较好,

2.曝光事件

以今日头条的信息流广告位为例

埋点需求:上报信息流广告曝光事件,用于后续的展示点击(即CTR)计算

触发机制: 1)整个消息高度的100%展示在用户可见的屏幕就算曝光;

                  2)列表滑动不上报,列表停止滑动时才算曝光 ;(即快速滑动不计曝光)

                  3)单次pv中,同一广告多次展示不做重复上报(即页面加载一次仅上报一次)

上报机制:退出页面时聚合上报;上报失败,保存本地,客户端每次(断网等原因)重新连接服务器时,即时上报

统计数据:不同广告的曝光次数、人数/天

{

  "Common":{"坏境数据"},

  "Common":{"公共数据"},

  "extra json":

  [

    {"ads_id": "12345"}, //广告id

    {"bid_id": "12345"}// 广告素材id //一个页面上可能有多个信息流广告,打包成数组结构并聚合上报

  ] 

}

网上截图:今日头条信息流广告

3.播放事件(即video_view,下文简写vv)

埋点需求:用户观看视频事件,主要用户统计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时可选

}


你可能感兴趣的:(3个重要的原生app数据埋点)