美文网首页
客户端埋点方案总结

客户端埋点方案总结

作者: 繁星mind | 来源:发表于2020-03-21 00:39 被阅读0次

    前言

    在软件使用过程中,会产生了大量的用户数据和行为数据,而这些数据记录了用户的行为和习惯等信息,为了给用户提供更好的体验,会对这些用户数据进行分析和利用,用来提升用户的体验,而数据采集作是整个链路上重要的一环,起到了很大作用,而埋点作为数据采集的手段,同样发挥着重要作用。


    数据采集流程

    一、埋点需求分析

    1.埋点需求背景分析

    首先我们要清楚埋点需求是什么,埋点主要是进行一些数据收集的行为,通过收集这些数据,数据使用者通过对数据进行分析,来实现各自的需求。产品可以用来分析用户使用习惯,验证产品方案效果,研发可以通过埋点监控应用质量,提升应用品质,AI工程师可以通过数据训练算法,实现搜索推荐等功能。为了达到各方的述求,对埋点数据会有着不同的要求。

    2.埋点痛点分析

    • 1)业务方痛点:
      • 开发工期紧张,不能支持埋点添加和修改。
      • 埋点必须跟版本走,不能立即生效。
    • 2)开发痛点:
      • 开发埋点工作量大,会占用业务开发时间。
      • 修改业务代码,可能会影响埋点功能,不能及时发现。

    3.埋点数据分析

    • 1)数据时效性:
      对于不同的使用方,对数据的时效性要求也不同,对于监控和一些在线系统,往往需要实时数据,而对于一些产品分析,失效要求会降低,比如T+1天就可以满足需求,所以埋点系统需要针对不同的使用方,设计不同的数据采集时效。

    • 2)数据准确性:
      数据准确性主要体现为数据采集准确性,特别是对于一些特定流程的数据采集,针对不同需求,进行不同方式的采集,比如页面曝光,页面浏览量,如何做到数据精准,满足产品和研发以及项目管理方的述求。

    • 3)数据多元性:
      数据多元性是指从多个维度进行数据采集,不同维度的数据可以展示不同的信息,同时不同维度的信息又有相互关联性,可以多方位了解信息和看待问题。

    二、埋点事件

    1.1事件定义

    为了对用户行为进行统计和分析,我们使用一类被称为 "事件" 的消息来记录用户行为。‌

    1.2事件组成

    • 1.who:用户信息,身高、体重、性别、职业等等
    • 2.when:时间信息,时间发生时间
    • 3.where:环境信息 设备环境、网络环境、业务环境
    • 4.what:事件信息 事件标识、事件参数,比如点击了哪个按钮,按钮标题。

    1.3事件维度

    • 1.访问级维度,浏览器访问还是移动设备访问。
    • 2.页面级维度,访问的哪一个页面,首页还是个人信息页。
    • 3.动作级维度, 点击、曝光还是滑动触发。

    1.4事件类型

    • 1.无埋点事件,指不需要额外开发,通过监听、通知进行的埋点。
    • 2.埋点事件,指开发阶段,手动进行的埋点。

    三、埋点采集方式

    1.代码埋点

    代码埋点,即在需要埋点的节点调用接口直接上传埋点数据,友盟、百度统计等第三方数据统计服务商大都采用这种方案,主要通过命令式代码调用,如下面这种方式:

    
    [XMData eventId:@"123" param:@{@"pagename":@"首页"}];
    
    
    
    • 优点:
      • 准确性高,针对性强,可以进行特定场景埋点。
      • 可以灵活获取业务数据参数。
    • 缺点:
      • 开发工作量大,每个埋点都需要开发实现。
      • 代码入侵性大,和业务代码混杂在一起,容易出错。
      • 后续维护比较麻烦,每次改动,都要以来开发修改。
      • 修改不够灵活,需要依赖发版。

    2.可视化埋点

    可视化埋点,即通过可视化工具配置采集节点,在后台配置埋点数据,在客户端自动解析配置并上报埋点数据,从而实现所谓的“无痕埋点”, 代表方案是已经开源的Mixpanel

    • 优点:
      • 埋点比较简单,不依赖开发。
      • 灵活性大大提高,可以通过后台配置,添加删除埋点。
    • 缺点:
      • 前期开发成本大,SDK和后台开发成本都增加。
      • 只能针对一些简单业务场景,不能获取复杂业务参数。

    3.无埋点

    无埋点,它并不是真正的不需要埋点,而是客户端利用hook拦截系统的响应事件,自动采集全部事件并上报埋点数据,在后端数据计算时过滤出有用数据,代表方案是国内的GrowingIO

    • 优点:
      • 数据可回溯性,如果想看某个埋点,可以直接去后台参考,不需要依赖发版。
      • 埋点覆盖面更全面,进行全面行为数据记录。
    • 缺点:
      • 数据量大,数据传输和数据存储要求高。
      • 无用数据较多,浪费资源。
      • 只能记录简单场景埋点。

    四、埋点管理

    1.埋点项目流程

    • 1)业务产品提出埋点需求
      • 包括业务数据、用户行为等数据
    • 2)数据产品制定埋点方案
      • 根据业务产品需求,制定合理的埋点方案
    • 3)埋点方案评审
      • 包括业务产品、数据产品、开发、测试,一起沟通埋点方案合理性。
    • 4)开发埋点
      • 开发根据业务埋点进行买点开发和自测。
    • 5)测试埋点
      • 测试根据业务埋点方案,进行测试验证。
    • 6)埋点上线
      • 埋点测试合格后,跟随业务一起上线。
    • 7)埋点数据统计和可视化
      • 对产生的业务埋点进行数据分析,后台可视化展示,供相关需求方使用。
    埋点项目流程.001.jpeg

    2.埋点开发和测试

    2.1埋点开发

    • 1.代码开发
      • 主要涉及代码埋点,必须要研发手工埋点。
    • 2.后台配置
      • 可以针对所有埋点,不只是可视化埋点,设置配置项,比如上报网络,上报时效,每日流量熔断等等。

    2.2埋点测试

    • 1.日志log查看
      • 测试埋点的时候,由于某些埋点要延时上报,不能实时查看,可以通过埋点log实时查看,还有是否触发。
    • 2.后台数据查看
      • 通过后台数据,可以查看埋点真实上报情况,确认埋点正确性。

    3.埋点质量监控

    有时因为开发同学错误修改一段代码,没考虑到会影响埋点,导致线上埋点事件丢失,很长时间没有发现,后来被产品发现,但是修复之前的埋点数据就没有,这种情况在实际开发过程中常常发生,如何避免这种事情发生呢?可以通过埋点质量监控来实现。可以检测必传参数是否确实,是否在合理范围等,在后台配置异常情况阈值,如果超出正常范围,发出报警提示,可以及早发现问题。

    4.埋点数据分析和可视化

    4.1数据分析
    根据埋点数据,分析用户行为,比如分析某个业务的转换率,分析页面用户喜欢点击的位置,广告点击率等数据,用于后续业务改进。

    4.2数据可视化
    以电商数据为例,通过埋点记录的页面PV,UV等数据都可以,可视化的方式展示在页面上,如下图所示。

    电商数据

    参考资料:
    Mixpanel Help Center
    应用埋点方案
    有赞埋点实践
    GrowingIO平台
    数据采集与埋点
    美团点评前端无痕埋点实践
    知乎客户端埋点流程、模型和平台技术

    相关文章

      网友评论

          本文标题:客户端埋点方案总结

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