埋点初体验

基础介绍

  • 埋点本身很简单,就是在一些特殊情况下进行数据记录,然后在特定时间进行数据上传,然后在服务端通过数据分析来进行用户行为的分析和总结。

  • 埋点大体分两种,一个是事件埋点,一个是曝光埋点,两者基本都是成对出现。

名词介绍

  • 埋点:即在特定的事件上进行数据记录,在规定时间上送到服务器。服务器根据采集得到的用户行为数据(例如:页面访问路径,点击了哪一个按钮)进行数据分析,从而更加合理的推送跟优化,增强用户体验。

  • 事件埋点:触发某些事件时需要记录的埋点,比如点击了某个按钮,tableview的cell点击事件,关闭了页面等等。当然,还有诸如请求失败,断网,服务器报错之类的请求事件。

  • 曝光埋点:用户看到的内容为曝光。该部分出现在屏幕上时需要记录的埋点,比如view出现时响应的viewWillAppear事件,cell出现的cellForRow事件等等。

  • 坑位:组件内最细粒度的坑位;可以理解为可以埋点的位置,比如我页面上加了10个按钮,那么就会出现10个坑位。

事件埋点

  • 首先,工作中添加的大部分都是手动埋点,结合业务需求,在需要记录的坑位进行埋点记录。自动埋点大部分都是通过runtime进行统一处理的,不在这次的工作范围内。

  • 这次埋点基本都很简单,都是在指定的位置添加一个公共方法,不过还是有两个遇到的难点,都是由于开始开发的时候没有计划好导致的,在这里记录下。

  1. 第一项是以旧换新的选择旧机功能里,选择旧机需求是两个tableview,左边的厂商列表选择后,请求数据并刷新右边的手机类型列表。然后问题来了,手机类型的埋点需要同时记录该手机厂商的序列号,但是在开发的时候并没有考虑到这点,两个tableview完全是分开的。
  • 最后的解决方案:controller再添加一个全局变量,用于记录当前厂商的序列号。
  1. 第二项,以旧换新的融合页面,融合页的一个按钮会根据手机价格存在三种不同的状态,不过由于三种状态的点击事件一致,所以当时并没有区分这三种状态。后期埋点要求三种不同的状态埋不同的坑位,这就导致后期状态判断困难。
  • 最后解决方案:通过button的title字符串进行判断,这是最快解决问题的方案。

总结

  • 埋点是很简单的事,不过如果太轻视的话也会导致开发起来出现冲突,前期的页面规划尤其重要。
  • 顺便说下埋点开发最坑的地方是没法自测,上传数据全是加密的, 都不知道埋的对不对,只有等测试去服务端核对数据,难受

你可能感兴趣的:(埋点初体验)