美文网首页
3个重要的原生app数据埋点

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

作者: jasminefig | 来源:发表于2019-11-28 22:39 被阅读0次

    第一部分 数据分类

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

    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数据埋点

          本文链接:https://www.haomeiwen.com/subject/xxzpictx.html