技术干货 | 闲鱼:一个优秀的 Push 平台,需要经历怎样的前世今生

简介: mPaaS 消息推送服务,快速集成多家厂商 Push 通道,有效提高用户留存率,提升用户体验。

编者荐语:

点击这里,了解 mPaaS 消息推送服务,快速集成多家厂商 Push 通道,有效提高用户留存率,提升用户体验。

以下文章来源于闲鱼技术,作者剑辛 

对闲鱼用户来说,因为闲鱼商品库存只有一件,商品的时效性很强,因此当用户关注的卖家上新、浏览的商品发生降价或者平台为用户找到一批高性价比商品时,用户期望尽快被通知。Push已经成为用户与闲鱼平台联系的重要纽带。

本文将以技术同学视角,介绍闲鱼Push从离线手工投放的1.0版本进化到智能个性化的2.0版本的发展过程,详细说明遇到的问题和技术方案选型,以期给读者带来一些思考和解决类似问题的思路。

image.png

闲鱼Push1.0

当闲鱼all in无线后,平台需要把与用户相关的优质内容推送给用户,便于用户快速找到想购买的商品和感兴趣的内容。平台亟需一个Push产品化方案保证将优质内容以Push的形式触达到用户,提升用户体验。基于这样的前提,闲鱼Push1.0方案的主要思路如下:

  1. 计算Push用户名单

      a. 计算与用户强相关的优质Push场景,根据场景得到用户名单

      b. 垂直业务根据用户画像等条件,圈选业务的目标人群

2. 基于场景疲劳度过滤每个用户能发送的场景列表

  1. 对每个用户的场景列表进行全局择优,挑选点击率最高的场景作为目标场景

闲鱼Push1.0方案简单明了,流程清晰,而且离线流程方便监控告警和问题排查,满足当时的业务需求,上线后运行稳定。在很长一段时间内1.0方案的核心架构和流程没有太大变更。但随着业务发展,闲鱼Push1.0方案的一些弊端开始暴露,包括

  • Push用户名单计算不够实时
  • 消息卡片样式不够丰富
  • Push触发时机单一
  • Push场景比较少

这些问题最终导致Push点击率无法继续提升,触碰到1.0方案的天花板。为了解决这些问题,我们对闲鱼Push系统进行几个方面的优化升级,并最终重构了闲鱼Push系统。

闲鱼Push1.1

为了给Push用户提供更好的用户体验,丰富用户Push场景,我们优先考虑从消息样式、触发时机和用户场景几个方面优化扩展现有闲鱼Push方案,优化项主要分为消息feeds流升级、Push时间个性化、实时Push等。

消息feeds流升级

Push会沉淀到客户端的消息板块,而消息板块也是用户进入闲鱼后浏览最频繁的板块之一,消息样式最开始只支持文本消息和图片消息,这类消息样式的问题是对用户来说有效信息曝光少、而且消息样式单一。为此我们对消息展示形式进行升级,通过feeds方式展示消息,提升有效信息曝光率,优化消息样式,打造消息板块的用户心智。feeds流升级上线后效果明显,因为用户感兴趣的内容相比透出更多,UV点击率和用户次留相对提升都很大。

image.png

第一条为feeds流消息,之后是图片消息,相对来说,feeds流消息可以透出更多有效信息

Push时间个性化

闲鱼Push1.0方案主要支持的是定时批量Push,实际的运行情况是定时批量给目标用户发Push。Push触发时机比较单一,人为造成流量较为集中,增加系统稳定性风险;另外统一的触发时机并不适用于所有用户,存在对部分用户打扰的情况。

针对这种情况,我们优化了Push触发时机,由算法根据用户行为计算预测每个用户的触发时机。算法将用户相对平均的分在一天之中,在用户相对活跃的时间段将Push触达给用户,减少对活跃用户骚扰,也使得Push触达的用户群体分层更加合理健康。

实时Push

闲鱼Push1.0方案主要覆盖的是用户相关离线场景,对用户实时行为产生的场景覆盖不够,而且这类场景较离线场景相比实时性更高,对用户来说相对更重要。针对这个问题,我们增加了对实时场景覆盖,将用户行为抽象成关系模型,以IFTTT作为系统整体触发机制。当关系一侧的用户行为发生变更后触发对另一侧的触达,这类场景实时性更强,和用户强相关,提升用户Push场景丰富度,增强用户粘性。实时Push场景上线后Push点击率相对离线场景提升1倍以上,具体技术细节可参考《闲鱼IFTTT》。

以上是我们针对闲鱼Push1.0的功能优化和增强,通过这些能力也扩展支持了更多场景和业务,最终组合在一起成为闲鱼Push1.1版本。

闲鱼Push的今生

闲鱼Push1.1整体上线后极大提升了用户Push场景丰富度和用户体验。随着对Push和用户理解的深入,我们发现还有优化提升的空间,包括:

  • 平台视角不够,现有的优化更偏向点对点,需要从闲鱼Push平台视角将这些点连成线形成合力,产生1+1>2的效果
  • 现有闲鱼Push流程的本质还是离线计算,算法无法进行更加实时的个性化和全局择优,对用户体验有一定影响
  • 场景配置不够灵活,新增场景成本高,制约了丰富用户Push场景的进度

基于这些原因,我们最终对闲鱼Push系统进行重构和升级,打造闲鱼Push实时智能投放平台Hermes。Hermes取自希腊神话,他聪明(智能)、行动敏捷(快)、多才多艺(多种触达),最能契合闲鱼Push实时智能投放平台的使命愿景。

逻辑架构

image.png

Hermes架构与闲鱼Push1.0完全不同,以实时为目标,在场景素材准备、算法全局调优和Push发送等关键环节实现实时或准实时,提升Push内容时效性;另外从平台角度出发,将Hermes分为配置中心、匹配中心和任务中心,各个子系统定义交互的数据协议,彼此没有强依赖。三个子系统的作用分别是:

  • 配置中心

    配置中心负责维护平台核心数据模型,给业务方提供页面操作配置Push场景和素材,降低业务方接入成本;并且把配置数据以离线全量和实时增量的方式同步给算法模型,作为匹配依据。

  • 匹配中心

    匹配中心又称为算法择优中心,匹配中心负责训练算法择优模型,根据场景和素材配置为每个用户个性化筛选,根据每个素材历史点击率数据排序,根据用户近期行为召回用户最有可能感兴趣的素材和个性化内容。

  • 任务中心

    任务中心负责Push触发时机和实际触达,任务中心核心支持定时触发、实时触发和时间个性化触发,目的是对Push触发方式收口,为不同的业务和场景选择不同触发方式,帮助业务实现业务目标。另外是对触达进行收口,方便平台编排触达计划,包括触发时间和发送量级,保证达到业务目标同时不会对Hermes和业务下游系统造成过大瞬时压力。

业务效果

Hermes平台上线后效果非常明显,主要表现为:

  • Push点击率相对提升达到两位数
  • 用户场景覆盖量直接翻倍
  • Push点击激活的DAU也超过历史最高水平

总结

本文介绍了闲鱼Push从前世离线计算的1.0版本,发展到多项功能优化的1.1版本,最终进化成今世的实时智能投放平台的全过程,其实闲鱼Push的每个阶段都契合当时业务发展需要,但对于用户体验的无限追求最终产出了闲鱼Push实时智能投放平台Hermes。希望这种方式可以帮助读者理解闲鱼Push发展的业务背景和技术方案选型考量。

本文作者:闲鱼技术团队(剑辛 

原文链接
本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「深入浅出」主流前端框架更新批处理方式

作者 | 👽来源 | 前端Sharing背景在不同的技术框架背景下,处理更新的手段各不相同,今天我们来探讨一下,主流的前端框架批量处理的方式,和其内部的实现原理。通过今天的学习,你将收获这些内容:主…

钉钉宜搭3.0发布!易连接、酷数据、更安全

简介: 10月20日,在2021云栖大会低代码分论坛上,阿里巴巴资深技术专家叶周全(花名骁勇)发布钉钉宜搭3.0版本。 10月20日,在2021云栖大会低代码分论坛上,阿里巴巴资深技术专家叶周全(…

基层数字化治理困境如何破局?

简介: 10月20日,2021云栖大会低代码分论坛如约举行。在这场低代码行业的盛会上,兰溪市大数据发展中心党组书记、主任芦建洪分享的内容获得了在场观众的热烈反响,兰溪市使用钉钉宜搭低代码破解基层数字化治理困境的成功经验也为全国…

形式化验证工具TLA+:程序员视角的入门之道

简介: 女娲是飞天分布式系统中提供分布式协同的基础服务,支撑着阿里云的计算、网络、存储等几乎所有云产品。在女娲分布式协同服务中,一致性引擎是核心基础模块,支持了Paxos,Raft,EPaxos等多种一致性协议&a…

性能突出的 Redis 是咋使用 epoll 的?

作者 | 闪客来源 | 低并发编程我是个 redis 服务,我马上就要启动了因为我的主人正在控制台输入:./redis-server宏观上看下我的流程突然,主人按下了回车键,不得了了。shell 程序把我的程序加载到了内存,开始执行我的 ma…

阿里云重磅发布业务中台产品 BizWorks,中台发展进入下一个阶段

简介: 业务中台产品BizWorks重磅发布,这可以看作是阿里云在 “做厚中台” 战略上继 “云钉一体”之后的又一个新动作! 10 月 19 日,2021 云栖大会正式开幕,连续举办多年的云栖大会俨然已经成为了国内科技产业展示前沿…

java32位怎么用eclipse_无法在Windows 7 32位上打开eclipse

我正在使用Eclipse Indigo(eclipse-jee-indigo-SR2-win32) . 当我双击eclipse.exe时,会出现以下对话框:日志文件的内容如下:!SESSION 2013-05-27 17:55:26.853 -----------------------------------------------eclipse.buildIdM20120208-080…

云栖发布|企业级互联网架构全新升级 ,助力数字创新

简介: 云原生产品家族全面升级,让业务技术团队有了更多选择,通过简单、丰富、开放和低成本的 PaaS 服务,帮助企业客户更简单、更高效的进行在云上创新,搭建更符合业务需要和团队情况的技术体系。 作者|白玙…

当类的泛型相关时,如何在两个泛型类之间创建类似子类型的关系呢

作者 | 阿Q来源 | 阿Q说代码事情是这样的:对话中的截图如下:看了阿Q的解释,你是否也和“马小跳”一样存在疑问呢?请往👇看我们都知道在java中,只要是类型兼容,就可以将一种类型的对象分配给另一…

java 垃圾回收 新生代_Java垃圾回收

一、概述Java垃圾回收器实现内存的自动分配和回收,这两个操作都发生在Java堆上(还包括方法区,即永久代)。垃圾回收操作不是实时的发生(对象死亡不会立即释放),当内存消耗完或者是达到某一指标(threshold,使用内存占总内存的比列,比…

一图看懂云栖大会「云原生」发布

简介: 云原生产品全新升级 原文链接 本文为阿里云原创内容,未经允许不得转载。

明明还有大量内存,为啥报错“无法分配内存”?

作者 | 张彦飞allen来源 | 开发内功修炼近日小伙伴和我说了线上服务器出现一个诡异的问题,执行任何命令都是报错“fork:无法分配内存”。这个问题最近出现的,前几次重启后解决的,但是每隔 2-3 天就会出现一次。# service docker stop -bash f…

先行一步,7大技术创新和突破,阿里云把 Serverless 领域的这些难题都给解了

简介: 函数计算 FC 首创 GPU 实例、业内首发实例级别可观测和调试、率先提供端云联调和多环境部署能力、GB 级别镜像启动时间优化至秒级、VPC 网络建连优化至200ms,Serverless 应用引擎 SAE 支持微服务框架无缝迁移、无需容器化改造、业内首创混合弹性策…

基于Delta lake、Hudi格式的湖仓一体方案

简介: Delta Lake 和 Hudi 是流行的开放格式的存储层,为数据湖同时提供流式和批处理的操作,这允许我们在数据湖上直接运行 BI 等应用,让数据分析师可以即时查询新的实时数据,从而对您的业务产生即时的洞察。MaxCompute…

如何新建java内部类_java内部类-1(内部类的定义)

小胖从官网出发,研究下为什么我们需要些内部类,内部类的区别和联系。思考三个问题:(1)为什么需要内部类?静态内部类和非静态内部类有什么区别;(2)为什么内部类可以无条件访问外部类成员;(3)为什么jdk1.8之前…

stack vs heap:栈区分配内存快还是堆区分配内存快 ?

作者 | 码农的荒岛求生来源 | 码农的荒岛求生有伙伴问到底是从栈上分配内存快还是从堆上分配内存快,这是个比较基础的问题,今天就来聊一聊。栈区的内存申请与释放毫无疑问,显然从栈上分配内存更快,因为从栈上分配内存仅仅就是栈指…

CDP 平台简介

简介: EDC 建立在 Cloudera Data Platform(CDP) 之上,该产品结合了 Cloudera Enterprise Data Hub 和 Hortonworks Data Platform Enterprise 的优点,并在技术堆栈中增加了新功能和对已有技术提供了增强功能。这种统一的发行是一个可扩展且可…

400倍加速, PolarDB HTAP实时数据分析技术解密

简介: PolarDB MySQL是因云而生的一个数据库系统, 除了云上OLTP场景,大量客户也对PolarDB提出了实时数据分析的性能需求。对此PolarDB技术团队提出了In-Memory Column Index(IMCI)的技术方案,在复杂分析查询场景获得的数百倍的加速…

建立数字化、学习型人事平台,HR 与业务终于不再「隔空对话」

本篇文章暨 CSDN《中国 101 计划》系列数字化转型场景之一。 《中国 101 计划——探索企业数字化发展新生态》为 CSDN 联合《新程序员》、GitCode.net 开源代码仓共同策划推出的系列活动,寻访一百零一个数字化转型场景,聚合呈现并开通评选通道&#xff…

OpenYurt 深度解读|开启边缘设备的云原生管理能力

简介: 北京时间 9 月 27 号,OpenYurt 发布 v0.5.0 版本。新发布版本中首次提出 kubernetes-native非侵入、可扩展的边缘设备管理标准,使 Kubernetes 业务负载模型和 IOT 设备管理模型无缝融合。 作者|贾燚星(VMware), 何淋波(阿里…