淘宝直播零代码弹窗生产方案总结

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 本文将介绍,淘宝直播前端团队为提升业务触达效率而设计的零代码弹窗动态化方案。

业务背景

众所周知,产品有三宝:弹窗,红点和引导。在淘宝直播业务里面,每当有功能上新、活动邀约、系统消息、奖励发放等事件发生时,我们通常采用弹窗来及时告知目标用户。可见弹窗是一项极其重要的触达手段,它打通了平台与主播的信号传达通路。

为了能高效快捷地与主播传递信息,我们必然要牺牲弹窗的视觉效果和灵动性。因此,过去的弹窗基本上由纯文本或单张图片组成:

image.png

当然,由纯文本或单张图片构成的弹窗往往缺乏视觉张力,使用户不能在短时间内阅读并理解弹窗内容,造成触达效率下降。另外,由于无法定制业务逻辑,主播不可以在弹窗上及时做出反馈动作,造成用户体验和触达效率的进一步下降。
因此,为了能在前端开发资源有限的前提下,提供更加美观、灵活的弹窗形式,提升业务触达效率,淘宝直播前端团队设计了一套零代码弹窗动态化方案(No-Code Dynamic Popup)。
方案探索

为了使弹窗的视觉效果更加多样、交互更加灵活,在不依赖客户端发版的前提下,必然要引入前端到各个需求的开发流程中来。因此,我们站在前端视角对弹窗这一场景进行了技术方案调研。

 方案一:传统开发流程

我们首先能想到的是按传统需求交付 SOP 来开发弹窗。当然,在初期阶段我们确实采取过这种流程并在今年年初上线了最早的几个 H5 弹窗。


image.png

如图 2 所示,传统产研流程需要把弹窗从其父需求中拆解出来,因为弹窗通常不是一个独立的需求,它是作为某个功能迭代、活动/任务上新等业务的附属需求。拆解完后经过需求评审,再由设计师出手设计弹窗的视觉稿,然后分别进入各端的开发、联调阶段。
客户端已经有了现成的 H5 弹层容器(WebViewLayer)故不需要投入开发;服务端也有了成熟的配置方案(疲劳度、优先级等)并且需要返回给前端的字段不多,因此工作量也不大。
而前端由于缺少相关基础设置,需要把弹层当作一个页面从零开始投入,具体包括工程初始化、视觉稿还原(视图层开发)、业务逻辑实现、Mock 数据、接口联调、冒烟测试等。这一系列「组合拳」下来至少要花费 1.5 至 2 天的开发时间,在交付流程中位于「关键路径」之上,若出一点问题就有可能影响整个需求的交付。因此我们需要寻找一个更加敏捷的方案。

 方案二:斑马搭建


众所周知,集团内有一个神器「斑马搭建」,它是一个页面搭建平台。提供了文本、图片、热区链接等基础组件,可使用户通过「搭积木」的方式快速搭建出大促、活动页面。在淘宝直播,斑马搭建也在素材中心的素材生产环节起了重要作用。
然而在弹窗场景下,若使用斑马搭建会带来如下问题:

  1. 搭建平台功能受限,无法对标 Sketch、Photoshop 等专业制图工具,限制设计师做出高级视觉效果;
  2. 给设计师引入了额外学习成本和工作量;
  3. 交互逻辑局限,不足以满足直播弹层业务诉求。


上述 1、2 点比较好理解,斑马搭建不能像 Sketch、Photoshop 等制图工具一样实现复杂的效果,因此需要设计师通过其他制图软件设计好后,切图导入到斑马上来,这无疑增加了设计成本。

为了让用户及时做出响应,我们需要在弹窗上实现一些复杂的业务逻辑。如点击按钮调用 Mtop 接口并通过 toast 反馈给用户结果等。这种形式的业务逻辑无法通过斑马实现,也就是问题 3 所在。

 方案三:imgcook 智能解析

斑马搭建给我们实现弹窗提效带来了很好的启发,但我们发现 imgcook 能更好地服务于直播弹层场景。据官方宣传材料,imgcook 采用计算机视觉深度学习等智能化技术,能够智能解析视觉稿并生成 H5 页面,赋能前端开发。

这听起来很诱人,但通过调研我们也找到了 imgcook 的痛点问题:

  1. 生成的代码可维护性差,不利于后续迭代;
  2. 生成的页面存在适配问题;
  3. 若要实现自定义业务逻辑,仍依赖代码侵入。

不过弹窗业务也具有其特殊性,它们巧妙地抵消了上述痛点问题 1 和 2:

  1. 生命周期短,一个弹窗一般不会有后续迭代;
  2. 大小固定,无需考虑不同尺寸屏幕下的适配问题。

因此我们可以借助 imgcook 的优势,即视觉稿还原能力,然后实现出直播弹窗场景下的 NoCode 弹窗生成方案。

image.png

如何实现弹窗自由

 目标

借助成熟的前端智能化技术,打造淘宝直播触达弹窗领域下的无代码解决方案,解放前端开发,赋能业务上线,提高业务触达效率。

 生产侧流程

我们知道完整的前端开发流程可以简化为视图层逻辑层的编码,在弹窗场景下也是如此。通过上述方案探索,我们了解到 imgcook 可以很好地 cover 掉视图层的工作量,但我们仍需要实现一套立足于直播弹窗业务的搭建平台来处理生产环节中逻辑层部分,即直播弹窗生成器。


image.png

  • 第一步,上传并解析视觉稿


首先由设计师将弹窗的视觉稿上传到 imgcook 工作台,对于视觉还原不准确的地方可以通过工作台的图形界面进一步调整。


在 imgcook 内部,会通过一份数据来做结构化的描述。这份数据从设计工具(如 Sketch、PhotoShop)导出开始,流经一系列的数据处理环节,最终生成一份模块从而产出代码。这份结构化数据信息描述叫做 schema

image.png

  • 第二步,配置弹窗信息


解析完视觉稿后,需要移步直播弹窗生成器(目前位于小二工作台)。生成器会首先要求配置弹窗的基本信息,比如弹窗名称、尺寸、SPM 等。

image.png

  • 第三步,导入 schema


由于弹窗具有无需迭代的特殊性,我们并不需要 imgcook 帮助我们生成最终的代码,只需要提供结构化描述信息即可。在生成器的第二步,我们需要导入 imgcook 生成的 schema。在右侧的预览画面中可以看到渲染结果,当然这只是还原了视觉稿中的静态效果。

image.png

  • 第四步,上传数据模型并绑定事件


为了实现弹窗的动态化,我们需要通过接口下发的图片或文案来替代视觉稿中的相应元素,同时增加一些简单的可交互逻辑。我们归纳出弹窗中的动态逻辑如下:

  1. 动态文本(如主播名称、奖励流量数)
  2. 动态图片(如头像、等级标志)
  3. 行动点(如跳转 H5,唤起 Native 页)
  4. 发起一个 mtop 请求(如领取任务组)
  5. 发起一个埋点上报
  6. 通过循环生成一个简易列表
  7. 直接关闭弹窗


我们对上述可枚举的业务逻辑进行封装,并实现了基于图形界面的字段映射事件绑定能力。如下图所示,这个工具包含两个模块:静态预览和动态绑定模块。我们可以在预览模块选中一个元素,选择需要的动态化类型,那么便可在右侧完成字段或事件的绑定操作,让静态弹窗「动」起来。

image.png

  • 第五步,预览并配置动画


自从今年 5 月初动态弹窗上线以来,我们已经基于此快速上线了多个业务弹窗。特别的,我们在今年 618 大促期间上线了 618 主播任务的弹窗,目的是吸引用户参加大促,赋能主播成长和等级跃迁。


但在复盘业务数据时,我们可以明显看到任务的领取率不高。通过投放效果分析,发现根本原因是弹窗的点击率低,很多用户在弹窗出现后便直接关闭了,原因可能是不小心碰到,或思维惯性造成的。


为了解决弹窗停留时长短,用户点击率低的问题,我们打算从视觉效果上入手,通过华丽的弹窗打开动画吸引用户眼球,以提高用户点击率和业务触达效率。动效的具体实现方式为 lottie 和 CSS 动画,lottie 作为弹窗背景动画,CSS 实现弹窗前景动画。动画效果均可拓展。


image.png

  • 最终产物


通过智能解析视觉稿,我们获取到了描述页面视图层的结构化数据(Imgcook Schema) ;在弹窗生成器上,我们生产出了包含弹窗尺寸、SPM、动画在内的配置信息(Configuration Data)和让静态元素动态化的映射数据(Mapping Data)。

将上述三者合并便得到了最终产物:Popup DSL,这也是我们最终交付和发布的文件。

 消费侧流程

目前在淘宝直播供给侧,主播工作台主播 APPPC 中控台小程序都有弹窗的触达需求。为了统一四端的弹窗表现,我们实现了在消费侧渲染动态弹窗的 H5 容器。
上文提到生产侧的最终交付物是一份 Popup DSL 描述文件,那么弹窗容器的主要工作便是解析这份文件并渲染出来。

  • 第一步,装载弹窗容器
    无论是在移动端还是 PC 端,我们会在应用启动时查询弹窗信息。如果有,接口会返回 Popup DSL 文件以及相应的业务数据结构
    在移动端,我们通过 WebView 装载弹窗容器,并通过 JS Bridge 讲 DSL 和业务数据传递进去;在 Web 端我们通过 iframe 装载弹窗容器,通过 Post Message 通信。
  • 第二步,渲染视图层
    弹窗容器在收到底层传来的 DSL 描述文件后,会首先解析出其中的视图层描述信息,即 imgcook schema。然后通过这份描述信息生成 HTML 结构和 CSS 层叠样式表,将相应的 DOM 节点装载在前景层,此时弹窗的静态部分渲染完成。
  • 第三步,绑定动态事件
    当静态部分渲染完成后,容器会解析出映射数据(Mapping Data),依次为前景层上的元素绑定事件。同时会绑定背景层的点击关闭事件。
  • 第四步,播放动画
    如果弹窗有配置动画,则会将 CSS Animation 作用于前景,在背景播放 lottie 动画。

image.png

实践案例


从今年三月到现在,淘宝直播供给侧已通过动态弹窗方案,零代码生产上线了十余个弹窗案例。虽然每生成一个弹窗只能减少有限的开发成本,但随着需求数量的不断增长,从总体看上是能产生很大的收益的。同时,在上线动画效果后,弹窗的点击率从提升到了 45%,触达效率进一步提升。

下图列举了一些动态弹窗案例:

image.png

心得体会


  1. 作为业务前端,要避免把自己定位成「切图仔」,无脑接需求。我们要积极归纳总结出日常工作中的重复部分,并发散思维,看看能否沉淀出一套通用的方法论把我们从机械化的重复中解放出来;
  2. 需求上线后不能不管不顾,要时常 Review 业务数据并找到不好的地方,并运用我们前端的头脑给出合适的解法,赋能业务增长;
  3. 在技术选型时,我们要善于利用各种工具的优势,并找到巧妙的方法解决掉它的痛点问题。


相关文章
|
6月前
|
测试技术 开发工具 UED
什么是农场游戏系统开发规则玩法/详细需求/案例详情/源码项目
明确定义游戏概念和目标**: - 确定农场游戏系统的主题和核心玩法,明确目标用户群体,并设定明确的游戏目标和规则。
|
6月前
|
安全 区块链
区块链农场游戏系统开发运营版/玩法详情/规则方案/案例设计/项目源码
Developing a blockchain farm game system is an interesting and challenging task. Here is a design solution that can help you get started developing such a system
|
5月前
|
搜索推荐 Java API
探索淘宝API接口:为电商业务开启无限可能
淘宝API接口是淘宝平台为第三方开发者提供的一组开放接口,通过这些接口,开发者可以获取淘宝平台上的商品信息、交易数据、用户行为等关键数据,并基于这些数据开发各种应用。淘宝API接口支持多种编程语言,如Java、Python、PHP等,方便开发者根据自己的需求进行选择和开发。
|
存储 移动开发 前端开发
线上直播拍卖APP源码,开发实现竞拍模式的逻辑和技术
探讨"东莞梦幻网络科技"在线拍卖软件源码的实时竞拍功能以及为这一拍卖模式提供技术支持,以下是深入研究的重点详细信息。
|
移动开发 前端开发 IDE
手淘双11最新实践:PopLayer弹层领域研发模式升级
近年来,各大APP内的弹层需求逐渐增多,以手机淘宝为例,日常的弹层上线频率为单端每月50次左右,而在大促期间可以达到240次以上。在手淘内,各类弹层业务都会通过PopLayer中间件的能力进行投放。但业务往往会遇到开发弹层难、慢、稳定性差的种种困难。对比于往年业务研发成本较高的现状,PopLayer在今年提出了【低研发搭投模式】来解决这类问题,形成一套快速搭建+可视化+多端多场景通用的解决方案,在日常与大促期间得到了广泛应用:
|
消息中间件 视频直播 数据安全/隐私保护
短视频直播系统,构建礼物模块需注意的问题
短视频直播系统,构建礼物模块需注意的问题
|
数据可视化 前端开发 算法
大淘宝中后台页面无代码生产新模式探索
电商发展至今,流量红利见顶,供给侧升级降本提能、精细化运营是未来的关键,由此B端中后台需求井喷并呈增长态势。随着运营工作台SOP体系通过跨系统能力整合打造运营标准操作链路,解决运营操作体验及站点交付效率问题时,运营能力的产品&体验一致需要页面研发保障,提供保障体验的高效页面研发能力尤为重要。
540 0
大淘宝中后台页面无代码生产新模式探索
一对一直播app开发,分析一下直播实现的流程
网络速度的提升,就可以支持高清视频的传输,并且传输速度大大提升,对优化画质和降低延迟都非常有帮助。一对一直播app开发技术的发展,对优化系统和提升用户体验,具有很强的推动力。
|
存储 机器学习/深度学习 算法
优酷移动端组件智能测试方案
随着优酷APP上内容运营方案和玩法的丰富,针对分发和消费业务场景,内容配置平台上的运营组件数量也在增多,移动端的回归测试工作量激增。如何跟随业务发展的脚步,又保证组件测试质量的高效率?本文将分享优酷在该方面的思考和探索
340 0
优酷移动端组件智能测试方案
直播app源码的会员增值功能,做好细节才能抓住机遇
直播app源码的会员增值功能,做好细节才能抓住机遇