猿桌派第一期:手机 APP 是不是在偷听我说话

猿桌派第一期:手机 APP 是不是在偷听我说话

12 月 23 日,业内首档程序员综艺“猿桌派”正式开播,首发嘉宾去哪儿网 iOS 高级研发武蕴、知乎大数据中心张彦瑞与主持人融云场景化研发负责人臧其龙就“客户端埋点与大数据分析”展开讨论,为大家详细拆解埋点的作用、意义,给个人和公司带来的价值以及如何验证,并就此揭开“程序员如何保持职业长青”这个经久不衰的职业发展问题的一角。

节目干货满满、诚意十足,嘉宾们将自己十几年的从业经验结合实际案例总结梳理、倾囊相授,同时根据自己的成长经历与大家探讨程序员如何进行职业规划,非常值得各位程序员同学收藏观看。

节目内容干到一度被限流 ,也不断有同学询问回看方式。现在,福利来啦!为各位久等的朋友奉上完整版👇

点击观看完整版

大家也可以通过以下方式收看 / 收听:

插播一条广告

12 月 30 日(周四) 19:30,猿桌派第二期将聚焦FlutterVS React Native」,欢迎微博@融云Rongcloud带话题#融云猿桌派# 参与有奖互动。

下面,让我们回顾下首期节目的精彩话题吧~

数据埋点是什么,为什么大家越来越重视埋点了?

首先,符合产品的需求,在一些产品功能上打点,方便测试,或结合后期分析来推测用户对于产品功能的反馈。开发需求时常用的 A/B 测试,也需要通过数据埋点把数据反馈不好的砍掉。

其次,做 APP 需要知道用户量、打开率、留存率,以及用户的喜好和特点,有助于分析 APP 的受欢迎程度。  

最重要的是,互联网的野蛮生长时代已经过去,获客成本越来越高,需要做精细化运营。用户每天的时间有限,除去各大应用占用的时间,留给其他 APP 的时间越来越少。如果不通过数据去研究用户的使用习惯,新东西可能永远也没有机会。

对于程序员个人来说,打点其实是脏活累活,让你的 code 没有那么优雅。

但一方面,在日常晋升时,做了多少 feature,改了多少 bug,项目有没有 delay 等要拿数据说话。

另一方面,如果一个程序员仅仅聚焦于如何写好代码,而不是通过数据对产品、公司在业界如何生存有一个普遍认知,可能只会成为一个技术尖兵。缺乏数据 Sense 和产品 Sense,你的职业发展可能只会聚焦于技术。

举个栗子,这些年你经历过哪些“自嗨”伪需求?

之前在一家短视频公司工作时,我们都觉得短视频肯定有泛社交的属性,做私信会增加日活,但产品极力阻断。后来,经过 A/B 测试,我们发现没加私信的那一部分日活反倒比较高。

我们曾经专门针对某一个版本做了一些优化,但发现用户量没有很大的增长,后来尝试把某一个页面变得特别漂亮,用户量和用户活跃度反而大幅增长。

这些,都需要通过埋点反馈出来。

一些我们以为会获得很大收益的动作,其实只是我们以为的。这就是伪需求。没有数据埋点,我们就无法获悉用户的真实想法。

打点应占程序员工作的 30% – 40%,为什么?

首先,新功能上线之前都要看数据,feature 和数据的占比应该是对半的。一些技术埋点就更是这样了,要设计出一套非常通用的,而且完全适用于场景的埋点,是要单独去定做的,这都要花费程序员大量时间。

其次,我们可以采用自动化埋点,但它只有通用性,基本上是 coding 层面的埋点,很难关联到具体业务。具体到业务形态还是要程序员花费时间去思考的。

比如点外卖,首页有讲究,第二页更讲究。当你在首页点击了一个辣的川菜,刷新到第二页、第三页时,你会发现都是辣的推荐了。

这就涉及到埋点的具体机制了。通常来说,埋点数据分两种,一种实时计算,还有一种是偏离线的。外卖应用属于第一种,是一个实时数据,会马上根据你在这个页面的操作做出一些反馈。

目前有很多成熟的实时流的框架,比如 Kafka。打点数据灌到类似于 Kafka 的这种消息队列系统里,接下来就是对这些消息队列进行订阅,订阅之后就可以去消费。

我们的手机有设备 ID 或者用户 ID,它会把 ID 对应的行为,做成类似一个 KV 结构,K 可能就是一个用户 ID,V 对应的就是它的一些特征,比如说“辣”。

然后,通过机器学习或数据映射,就把“辣”这个 tag 标记到设备上。接下来进行分页请求的时候,通过匹配发现你的 ID 对应的 tag 是辣,捞库的时候可能就会倾向于去捞一些比较辣的。

实时流本身有一个时间窗口的概念,在一段时间内是指定 tag,长期积累下来的综合数据标签,是通过综合分析离线数据计算出来的数据集的倾向。

手机 APP 是不是在偷听我说话

针对完整全面的数据,可以通过数据关联性挖掘和释放更多价值。

最直观的使用场景,就是广告投放。

拿 Facebook 也就是现在的 Meta 来举例,他们会做一些 SDK 服务于广大开发者。开发者把 SDK 嵌入到自己的 APP 里,调用他们的广告服务让用户去点击曝光等等。Meta 基于对数据的掌握和分析向用户推三方 APP,转化率非常高。所以,iOS 14 把 IDFA(Identifier For Advertisers)由默认开启变为默认关闭后,极大地影响了它广告的转化率。

关于广告推送,前段时间非常盛行一种说法,某某 APP 监控了我的麦克风。其实,基于目前的 NLP 技术,这是不可能发生的。如果一个 APP 想要通过麦克风进行语音捕获,然后做语音分析,再进行文字识别、语音识别,没有百八十台顶配 GPU 去跑是做不到的。

所以,没有 APP 偷听我们说话。

那么,为什么我们常会遇到聊过什么就会搜到什么的情况呢?事情可能是这样发生的——

两个在同一局域网的人在聊天中提到了鳗鱼饭,没有搜索的那个人却看到了鳗鱼饭的推送,很有可能是另一个人搜索了,而系统判断同一局域网下的用户可能有类似的需求,所以推给了前者。

怎么管理埋点数据?

埋点的使用越来越多,很有可能出现一个业务点打了两个埋点,但是涵盖的业务参数不一样的情况。所以,埋点管理就非常重要了。

埋点的管理是一个系统性的工作,要开发平台进行管理。把每一个埋点登记在一个平台里,就知道有多少埋点,各自是什么信息,谁打的,有过什么变更,这些都是元数据

另外要通过时间戳去对埋点做生命周期的管理,比如很多 A/B 测试,绝大多数的 feature 后期是要干掉的,但里面的埋点不一定能来得及删掉。

通过大数据的手段,看埋点的时间戳,可以得出最新的版本里已经多久没有上报埋点。这意味着这个埋点很可能已经很久没有被用户触发过了,也就是说对应的 feature 可能没有用了。这个时候,就可以经过一定程序把该埋点删除了。

程序员怎么保持职业长青?走上管理岗的第一步是什么?

首先,从技术上要往下钻研。无论做什么 APP,都要构建 UI。所以我们需要针对 iOS、Android、Web 甚至是桌面端去写一些 UI 功能。他们都是用一套原理,上层去创建 UI 的树,底层是图像引擎去渲染。即使再发展出新的语言,底层也是这个套路。

所以,程序员万变不离其宗的还是这些核心,操作系统、网络、内存管理、渲染等等。想在这个行业深耕下去,还是要往下钻。

其次,需要了解从前端到后端整个链路的知识。学会一个点,到学会一个面,你对整个业务的了解会更深入。

比如,我们为什么要收集这些数据,怎么从 0 到 1 搭建部署,整个打点 SDK 的质量要怎么保证?上报的机制是什么?这些问题的答案是跟业务相关的。所以当你围绕业务综合考虑一项工作的时候,你想得会更全面一些。

最后,程序员要有商业 Sense、产品 Sense,对你们公司到底如何赚钱有一个比较清晰的认知。当大家在谈论程序员职业规划时,一个常提及的路径是走上管理岗。那么,重要的是如何转管理,有没有这个机会?其中很重要一点就是你到底对公司的商业模式和产品发力点有没有一个特别清晰的认知,这是程序员走上管理岗的第一步。

       

标签: