从飞书妙记秒开率提升,看火山引擎 A/B 测试在研发场景的应用
作者:DataTester
用户体验是决定互联网产品能否长久生存的关键,每一个基于产品功能、使用和外观的微小体验,都将极大地影响用户留存和满意度。
对于企业协作平台飞书而言,用户体验旅程从打开产品页面的一瞬间就已开始,这里有一个十分重要的指标——页面秒开率,秒开率是指页面在一秒之内打开的比率。飞书为了提升用户体验,对其各项功能的秒开率优化下了大功夫,通过应用火山引擎 A/B 测试(DataTester)进行严格的变量控制,落地精准的实验结果,帮助研发团队佐证并明确了秒开率优化方案的收益。
影响秒开率其实有很多种因素,如代码冗余,插件拖累…… 在其中,有一项重要的影响因素是“类加载”。类加载是指当页面被打开时,背后是调用的多个元素的代码,它们会经历验证、准备、解析、初始化等环节后,才能被使用,这个流程是比较耗费时间的。
以飞书的一项功能“飞书妙记”加载为例,当飞书整体进行冷启动时,如果用户是首次打开飞书妙记界面,就会伴随着接近 1600 个类的大量加载,这对页面启动速度有着不可忽视的影响。如何减少如此高的类加载数量对秒开率的影响呢?飞书团队希望尝试采用的方案是:接入 SnapBoost 方案。
SnapBoost 方案的思路是让 app 能够提前对页面使用到的"类"进行加载,通俗来说,也就是在用户打开页面之前,将耗时较长的部分提前进行加载,当用户在打开页面的时候,这些代码省去了编译和解析的时间,可以直接执行,使秒开率得到提升。
那么 SnapBoost 方案是否能有效降低“飞书妙记”的加载时间呢?飞书团队采用了火山引擎 A/B 测试(DataTester)进行方案可行性的重要验证。
本次 A/B 实验三大指标:
类加载数量
Activity 切换耗时 :Activity 通常指一个单独的屏幕(页面),此指标指在不同页面之间的切换耗时。
可感知耗时 :指用户操作相关动作(点击播放、滑动卡片等)到首帧渲染出来感知到的耗时。
优化前后收益验证:
火山引擎 DataTester 的实验结果,对 SnapBoost 方案的提升性能假设给予了强有力的佐证,通过 SnapBoost 方案等一系列优化,飞书妙记的秒开率可以达成 37%的优化提升,目前该方案已经成功地进行了全量上线。
“ DataTester 是结合 A/B 测试方法论最好的一个工具。”飞书的研发成员在采访时讲到,在性能优化的 A/B 实验上,DataTester 能提供更加严格的变量控制和更加智能化的实验形式,业务可以便捷地获得有说服力的实验结果。
企业研发场景如何应用 A/B 测试
飞书的案例是一个 A/B 实验应用在研发场景的典型例子。市场对于常规 A/B 测试的常规印象是“产品优化的利器”,如产品页面 UI 优化、产品策略优化等;但区别于常规印象,火山引擎 A/B 测试 DataTester 也可应用在多种研发场景中,包括算法优化、性能优化、模型优化、灰度发布场景等。
DataTester 提供了丰富的研发场景模板,依托深入业务打磨的扎实的产品能力,可以帮助企业提升研发层面的效率和决策准确率。
算法优化
各类算法优化是 DataTester 应用场景最频繁的地方之一,算法开发人员可以通过 A/B 测试来验证新的算法或者算法优化是否可以提升对应业务指标。抖音的推荐算法、广告算法、千人千面等设置,无一不是经历了 DataTester 的多轮验证。而包括推荐、搜索、精准广告、精细化运营等涉及到算法的产品和业务也都可以应用 A/B 测试技术。
性能优化
在产品演进与迭代的过程中,常常会出现由于发展迅速导致的历史遗留问题加重。如代码冗余、分支版本多难维护等情况,产品需要对代码进行清理,对产品组件进行优化,火山引擎 DataTester 能够帮助验证产品性能优化的结果,避免在优化过程中出现 bug 导致产品发生严重负面影响。
此外,对于一些影响用户体验的场景,例如观看视频、播放歌曲时的快速加载,这种性能优化的场景在 DataTester 中也提供了相应的应用模板,业务可以快速上线多种策略并查看其对关键性能指标的影响。
服务迭代
当一些服务前端代码需要进行迭代时,会面临一旦出现问题,对用户范围影响较广的风险。此时也可通过火山引擎 DataTester 去验证服务的稳定性。例如抖音电商要对商家后台进行升级,改造主要涉及的是多个商家平台基础的接口,他们首先会选择接入 DataTester,用 A/B 测试来实验接口变化后对产品稳定性的影响。
灰度发布
当产品有新功能上线后,如果线上服务一旦出现问题,需要做到及时回滚,DataTester 的智能发布能力适配这一场景。产品在新功能上线出现问题需回滚时,只需应用 DataTester 智能发布能力或关闭实验,或关闭服务端的 TCC 开关,就能将所有流量立即回滚到旧的服务上,保障灰度发布场景下出现问题时的用户体验。
火山引擎 A/B 测试核心模块介绍
扎实的实验能力背后,是因为有完备产品架构支撑。火山引擎 DataTester 作为一站式全栈多场景实验平台,产品结构纵深丰富,并可以基于先进的底层算法,提供科学分流能力和智能的统计引擎。
DataTester 产品整体分为 5 层结构:
在应用层,DataTester 服务的行业非常广泛,除了互联网行业之外,还包括金融、消费品、零售行业、汽车行业,以及泛互联网行业中的细分子领域。这些领域有很多工作场景都可采用 A/B 测试提效,如广告优化、落地页营销优化和用户推送优化、画布触达优化等实验。
在接入层和会话层,通过 DataTester 的分流服务能聚合业务的多种线上触点,包括但不限于服务端、客户端、小程序及广告投放平台触点的接入。中间层是 DataTester 最重要的功能层,这里可以划分为三大模块:
模块一是实验管理相关模块,包括实验管控,涵盖实验从设计到发布的全流程,也包括实验的报告及其中丰富的数据分析功能,以及相关的实验的工具,这一模块是 DataTester 最基础的部分。
模块二是智能发布(Feature Flag),A/B 测试如何生效不同的策略,如何智能化完成实验的配置、生效和发布,均由这一模块完成。
模块三是 A/B 测试场景化的应用,DataTester 提供了多样化的实验方式和实验模板。
最后的数据层,DataTester 除了 SDK 的采集之外,还支持数据集成的能力,可以集成的数据包括但不仅限于有客户端的用户行为、服务端的埋点,还有业务的第三方平台数据亦可支持。同时 DataTester 也会产出用户进组的信息,来将业务数据和用户进组数据链接在一起,方便 A/B 实验的开启。
火山引擎 DataTester 起源于字节跳动内部的数智实践,在字节内部已经服务了 500 多条业务线,10 余年间在字节跳动开启的实验总量已超过 150 万次。同时,DataTester 现已服务了美的、得到、凯叔讲故事等在内的上百家外部企业,支持了多个行业、多种业务场景的需求,为业务的运行、转化、增长等各环节提供了科学的决策依据,将成熟的“数据驱动增长”经验赋能给各行业。
评论