幸福里APP是抖音集团旗下开发运营的集内容、社区、工具于一体的房产信息综合平台,基于个性化推荐引擎向用户推荐优质的房产内容房源信息。本文将介绍幸福里APP应用火山引擎A/B测试DataTester完成产品体验优化,并解决实验流量过度曝光的案例。
 
幸福里APP在整理用户反馈时,发现了一个产品使用体验上的问题:用户在浏览房源详情页时,有时会遇到「切换头图」卡顿的情况。而对于房产APP的业务开展而言,尤其在新房、租房和二手房售卖业务上,APP详情页的头图展示是重中之重,C端的使用用户一般都会通过查看头图的图片、视频等内容,来对房屋情况进行预览,进而决定是否要继续进行咨询等操作。
 
针对「切换头图」卡顿的问题,幸福里APP决定新增一项技术优化:在展示头图图片时,将预先下载下一张图片,避免用户滑动时再开始下载,导致图片展示延迟;该项优化将通过火山引擎DataTester开启A/B实验,与优化前的版本进行对比,观测技术优化上线后的效果。
 
优化方向确认后,幸福里APP还有一个问题需要解决。由于APP详情页头图的位置入口相对较深,需要多次点击和跳转,针对比较深的入口开启A/B实验,有一个A/B实验的“坑”——实验流量过度曝光(Over Exposure)需要避开。实验流量过度曝光是指在开设实验时,由于实验入口位置较深,可能导致大量并没有体验到实验版本功能的用户被计入到了实验指标的分母中,导致指标值被稀释的情况叫做实验过度曝光。
 
幸福里APP在这里接入了DataTester SDK实验设置精准曝光,将“用户在进入新房、租房、小区、户型详情页时”设置为用户进组时机,达到对用户进组时机的精确把控。
 
火山引擎DataTester设有专门能力应对A/B实验过度曝光的场景,通过 SDK 开启实验的客户端,同样会在用户启动时从DataTester平台获取实验参数。然而在用户触达实验时,SDK 会以上报 vid 的方式向DateTester平台进行确认,DataTester收到确认后才会将该用户实际纳入最终指标的计算,从而从实验流量中过滤掉了没有实际触达实验的用户。
 
接下来,幸福里APP的A/B实验的技术优化方案是:
  • 在展示头图图片时,预先下载下一张图片,避免滑动后再下载导致图片展示延迟
  • 在显示一个图片时,先判断该图片是否下载成功优化
 
对照组为线上原有方案,实验组为技术优化方案,各赋予50%流量,在用户进入新房、租房、小区、户型详情页时触发实验曝光。
 
最终,DataTester的A/B实验结果显示,产品数据的提升超出了幸福里APP在实验设计时的预期。在优化方案上线后,用户看到头图的时间平均会缩短一半,幸福里房源曝光和点击、APP使用时长、用户留存及活跃天数,各项核心指标均有显著提升。幸福里研发人员在采访时说:“本身是一个小的技术优化,预期是提升用户体验,减少用户看见图片的等待时间,最终发现头图加载的优化也对大盘带来了正向的收益”。
 
根据这个方案的收益情况,幸福里也将此项技术优化推广进入了幸福里所有的业务线,同时也加入了产品的基础组件中。在最后,幸福里研发人员也分享了一些应用火山引擎DataTester开A/B实验的心得和体会:
  1. 开实验前要明确实验类型、实验受众、曝光时机、技术指标统计口径等,避免实验不达预期要重开。
  2. 实验指标数据不达预期时不要急,可以看看MDE值,拆维度(城市、新老用户、系统等)分析,可能会有意想不到的收获。
 
DataTester是火山引擎数智平台旗下产品,能够深度耦合推荐、广告、搜索、UI、产品功能等多种行业场景需求,为业务增长、转化、产品迭代,运营提效等各环节提供科学的决策依据,让业务真正做到数据驱动。目前,火山引擎DataTester已经服务了美的、得到、凯叔讲故事等在内的上百家标杆客户,将成熟的 " 数据驱动增长 " 经验赋能给各行业。

火山引擎DataTester:小改动带来大收益,A/B实验助力幸福里APP精准优化的更多相关文章

  1. 火山引擎 DataTester:让企业“无代码”也能用起来的 A/B 实验平台

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 当数字化变革方兴未艾,无代码正受到前所未有的关注.Salesforce 的数据显示,52%的 IT 部门表示,公司 ...

  2. 火山引擎MARS-APM Plus x 飞书 |降低线上OOM,提高App性能稳定性

    通过使用火山引擎MARS-APM Plus的memory graph功能,飞书研发团队有效分析定位问题线上case多达30例,线上OOM率降低到了0.8‰,降幅达到60%.大幅提升了用户体验,为飞书的 ...

  3. 小改动,大作为——C# 4.0中的微小改动

    1.可选参数和命名实参 可选参数和命名实参就如同一对好基友,因为它们经常一起使用. 1.1 可选参数 可选参数重在“可选”,即在调用方法时,该参数可以明确指定实参,也可以不指定.如下代码所示,下面代码 ...

  4. 还原火山引擎 A/B 测试产品——DataTester 私有化部署实践经验

      作为一款面向ToB市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路.   在面向ToB客户私有化的实际落地中,火 ...

  5. JuiceFS 在火山引擎边缘计算的应用实践

    火山引擎边缘云是以云计算基础技术和边缘异构算力结合网络为基础,构建在边缘大规模基础设施之上的云计算服务,形成以边缘位置的计算.网络.存储.安全.智能为核心能力的新一代分布式云计算解决方案. 01- 边 ...

  6. 火山引擎DataLeap数据调度实例的 DAG 优化方案

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 实例 DAG 介绍 DataLeap 是火山引擎自研的一站式大数据中台解决方案,集数据集成.开发.运维.治理.资产管理能力 ...

  7. 火山引擎 A/B 测试产品——DataTester 私有化架构分享

    作为一款面向 ToB 市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路. 在面向 ToB 客户私有化的实际落地中,火 ...

  8. 如何又快又好实现 Catalog 系统搜索能力?火山引擎 DataLeap 这样做

      摘要 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理.资产.安全等全套数据中台建设,降低工作成本和数据维护成本.挖掘数据价 ...

  9. 火山引擎 DataLeap:一家企业,数据体系要怎么搭建?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 导读:经过十多年的发展,数据治理在传统行业以及新兴互联网公司都已经产生落地实践.字节跳动也在探索一种分布式的数据治 ...

  10. 火山引擎 DataLeap:3 个关键步骤,复制字节跳动一站式数据治理经验

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理. ...

随机推荐

  1. 数据结构-线性表-顺序表(c++)

    SeqList.h #ifndef SEQLIST_H_ #define SEQLIST_H_ #include<iostream> const int Max=100; template ...

  2. 文心一言 VS 讯飞星火 VS chatgpt (134)-- 算法导论11.2 6题

    六.用go语言,假设将n 个关键字存储到一个大小为 m 且通过链接法解决冲突的散列表中,同时已知每条链的长度,包括其中最长链的长度 L,请描述从散列表的所有关键字中均匀随机地选择某一元素并在 O(L· ...

  3. 【VMware NSX-T】在vCenter内直接将Manager设备删除后,ESXi上还遗留N-VDS交换机及网卡被占用等问题的解决方法。

    由于之前在实验平台安装了NSX-T的测试环境,但是由于太忙了没怎么测试,后来实验环境出了点小问题,索性就将上面所有虚拟机给清空了.但是没想到上面遗留了NSX-T上创建的N-VDS交换机,还占用了服务器 ...

  4. 玩转开源 |Hugo 的使用实践

    Hugo 是一个能够以出色速度构建静态网页的工具,它为我们提供了极具灵活性的平台,可以塑造成符合个人需求的网页.在上一篇博文中已经介绍了 Hugo 的基本搭建步骤,那如何使用 Hugo 搭建符合自己需 ...

  5. 【Android】打卡app 今日完成情况记录

    已完成内容:页面的设计.数据库的建立 今日目标:实现数据库的增删改查,并能够在页面实现输出 逻辑: 1.用户进入注册页面,进行注册,注册成功后,可以成功登录(这一阶段就完成了) 2.登录后,显示用户的 ...

  6. Android的内部存储和外部存储怎么区分?

    1.定义 内部存储:内部存储位于Android手机系统的data/data/<包名>这个目录下,内部存储是私有的,主要用于存储系统和应用程序的某些数据,对于其他应用程序来说是不可见的,并且 ...

  7. 如何用java的虚拟线程连接数据库

    我觉得这个很简单 首先确保你idea支持jdk21. 然后把idea编译成的目标字节码设置为21版本的 然后编写代码. 创建虚拟线程的方式有: Runnable runnable = () -> ...

  8. SpringCore完整学习教程4,入门级别

    本章从第4章开始 4. Logging Spring Boot使用Commons Logging进行所有内部日志记录,但保留底层日志实现开放.为Java Util Logging.Log4J2和Log ...

  9. 15、string

    1.string是什么? Go中的字符串是一个字节的切片,可以通过将其内容封装起在""中来创建字符串.Go中的的字符串是Unicode兼容的并且是UTF-8编码的. 2.strin ...

  10. 2024年 Kubernetes 四大趋势预测

    Kubernetes 在生产环境中的复杂性已经成为常态,在2023年这个平台工程盛行的时代,容器管理的最大亮点可能在于其灵活性,然而在运维政策和治理等方面仍然存在诸多挑战.Kubernetes 最大的 ...