2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

优酷视频互动曝光率优化实践

  • 2020-05-12
  • 本文字数:2522 字

    阅读完需:约 8 分钟

优酷视频互动曝光率优化实践

一、背景与简介

优酷的视频互动是在播放页横竖屏弹出的互动浮层,旨在让看片更有趣。现有投放评分、高级弹幕、特效广告、子母屏双视频流等运营及广告活动,以及基于 AI 的场景互动,投放效果如下图。



针对这些大量的投放活动,为了衡量活动曝光的质量,我们定义了互动曝光成功率:


曝光成功率=互动实际曝光数/互动应曝光数


通过添加技术埋点,我们统计了现有互动平均曝光成功率在 97.7%,即互动投放后,大约有 2%的用户是看不到的,虽然投放的主要都是 weex/h5 活动页,但是投放失败的比例还是偏高的。为此,我们花了一个多月的时间,分析了链路问题,来优化曝光成功率。

二、优化策略

互动业务曝光分脚本数据获取、插件预加载、插件加载渲染显示三个阶段,在接手业务后,我们首先添加了相关节点技术埋点。通过分析技术埋点和 TLog 日志,发现加载失败主要有以下三种情况:


1)加载超时;


2)weex 和接口业务错误;


3)数据统计不准确。


查看日志,大部分还是超时问题,直接错误占所有错误的比例只有 10%左右。于是,首先来解决的是超时问题。


  1. 超时问题


1)预加载时间增大


我们首先拿评分 weex 页加载时间区间分布来分析,从技术埋点统计的加载时间范围看,90% 区间最大需要 457 毫秒,但是到了 99%区间大约需要 17 秒。这里可以看到 90%区间并不能准确衡量业务的好坏,之前配置的 5 秒预加载时间明显不足,导致超时问题一直较多。现在 weex 和接口的预加载时间都调整到了 20 秒以上,确保 99%的用户都可以加载完毕。



2)补齐 zcache 配置


由于投放的 weex 活动页是由多人开发完成的,实际看投放的 weex 页面,发现部分老页面、新页面没有配置 zcache,导致曝光成功率不足 96%,于是找到相应的 weex 开发,跟进配置 zcache。


3)提前触发 zcache 下载


通过观察了多个 weex 页面,发现 zcache 命中率都在 80%左右,现象就是用户在第一次弹出互动时,基本无法命中 zcache,而在没有 zcache 时,页面加载超时的问题就很明显,不解决 zcache 命中率问题,曝光成功率很难再提升。我这边想过几个策略:


方案 1:调整 zcache 优先级,强制更新和全网更新;


方案 2:预置 zcache 到 apk;


方案 3:提前触发 zcache 下载。


方案 1 并不适合互动这样的普通业务,方案 2 因 weex 业务代码更新涉及到重新配置及老版本兼容问题,操作麻烦,而且会增大 apk 大小。后来想到只需要在进入播放页时按需提前触发 zcache 下载即可,于是去查看了 weex 加载链路源码,发现确有 zcache 下载能力接口,于是增加了进入播放页后有相关互动立即提前下载对应 zcache 文件,来提升 zcache 命中率。


从线上发版数据看,weex 页的命中率从 77%提升到 98%左右,首屏平均时间减少 40%,既解决了部分用户的超时问题,也解决了所有用户首次渲染时间问题,提升效果明显。


同时从曝光数据来看,zcache 命中率提升到 95%后,相关互动曝光成功率大约提升了 1%,普通 weex 页面经此优化曝光成功率提升到 99%左右。现在 zcache 预加载能力已经沉淀到互动引擎,在以后的互动活动,及其它 weex、h5 页面都可以使用此能力。


4)超时补偿


现有预加载能力,可以保证互动准时弹出,但是也有一个很明显的缺陷,有时间限制,超时即认为加载失败,针对部分不需要准时弹出的互动,超时就认定加载失败,是不太合理的,因为这里大部分还是可以加载成功。于是我们在预加载逻辑里新增一个策略,如果超过一定时间,还未预加载完毕,允许 plugin 直接弹出,等待 weex 页面加载完毕。目前评分业务已使用了此策略,另外双流业务也存在同步超时问题,android 端同步问题比 iOS 端高的多,我在双流同步时也增加了超时认为同步成功的补偿逻辑。


  1. 错误问题


1)weex native 错误


新业务上线时,往往存在很多 js 错误,这期跟进核心互动评分、tips 互动的 weex 页面 js 错误修复,反馈给对应开发来解决。目前 weex 核心页面(评分、tips)暂无业务错误,不过还存在少量的白屏错误,后续待继续优化这种容器层的 js 错误。


2)异常率


我们每期都在跟进互动业务 crash/anr 问题解决,但是实际分析曝光链路过程中,发现相邻两个阶段总是会有少部分数据丢失,但是没有 crash 信息。我从分析代码链路看主要是 try catch 导致链路断掉,于是想到来治理 warn 问题。业务内有很多 try 代码,仅仅是为了避免出错时影响播放业务,但是却没有来解决这些警告。这些警告却会导致互动曝光失败,因此在 catch 之后统一执行异常上报,在 appmonitor 上报异常名称,详细错误日志写入 TLog,这样可以统计警告个数。上线后统计警告数据如下:



实际上线后发现确实存在不少空指针、多线程异常,尤其是多线程 list 读写异常,影响了插件生命周期。我在新版本解决了这些警告。只有数量无法分析某个版本的好坏,于是参考崩溃率,以初始化个数为分母,计算出警告率,可以来衡量各版本警告的指标。


优化一版后异常率从 1.085% 减少到 0.052%,解决了长久以来一直存在的多线程轮询时的 list 读写异常。现在只优化了主要的几个问题,由于在定位过程中发现从 TLog 拉取历史日志,存在设备不在线、数据丢失问题,使用不很方便,后面考虑把错误文件名、行号同时上传到统计后台,方便快速定位问题。其他业务如互动这边弹幕、评论等业务以此为参考,重点治理下警告问题。


  1. 互动容器 bug 及数据统计校准


针对曝光成率统计,双端统计分子实际曝光数没有问题,但是在统计分母应该曝光数时,都存在统计不准的问题,为此我们双端讨论并约定分母中,去除了无网导致的预加载问题、音频模式不弹(设计约定)、互斥不弹、未登录用户态导致的不弹、黑名单配置等干扰数据统计,同时解决了分母重复统计问题,跟进播放器解决推荐广告导致的首次不弹 bug,确保双端数据准确、标准一致。

三、总结

本次曝光成功率优化,核心业务的成功率都提升到了 99%以上,主要使用了以下三个策略:


1)提前预加载;


2)增大预加载时间;


3)增加超时补偿逻辑。


同时解决 weex 错误、客户端的错误、警告,补全了互动监控、预警能力,监控并保障投放活动的稳定性,沉淀了 zcache 预加载能力、异常率指标。


通过此次优化,从互动平台角度解决了现有的互动曝光率问题,完善平台化能力,确定了业务投放衡量标准,以此来推进提升及保障各互动业务的质量。


作者 | 阿里文娱高级无线开发工程师 凭海


2020-05-12 08:581498

评论

发布
暂无评论
发现更多内容

A路径 VS B路径:先攻新加坡还是直取美国?中国科技出海的生死选择题

白鲸开源

开源 DataOps 出海 商业化 白鲸开源

一种更简单的方式运行 C# 代码,简化 C# 开发体验!

不在线第一只蜗牛

C#

全球科技巨头云集,展现AI前沿成果|2025深圳人工智能展

AIOTE智博会

高交会 高新技术展 深圳高交会

小白也能轻松上手:ToDesk、Parsec、AnyDesk、TeamViewer 哪款远程软件最适合新手?

小喵子

远程

一文就可搞清楚的HarmonyOS NEXT解锁模态页面的“真香”操作

程序员Feri

HarmonyOS NEXT

前端热更新:无声引擎驱动中国互联网数字化转型

xuyinyin

百度网盘位列AI产品榜APP第一,AI激活网盘内容管理、消费新增量

极客天地

Vue3组件通信全攻略:多种方式详解+实战场景,轻松玩转复杂数据流!

量贩潮汐·WholesaleTide

JavaScript Vue 3

超实用!Dify调用Java的3种实现方式!

王磊

高并发下如何防止商品超卖?

量贩潮汐·WholesaleTide

高并发

Java后台实现微信小程序不同人员生成不同小程序码并追踪扫码来源

电子尖叫食人鱼

Java 微信小程序

通义灵码+云效 DevOps MCP:通过云效工作项自动生成代码并提交请求

阿里云云效

阿里云 通义灵码 MCP

人工智能AI在数字化转型有哪些应用?

优秀

人工智能 AI 数字化转型

Web前端入门:JavaScript 循环结构注意事项

不在线第一只蜗牛

前端

昆仑万维天工超级智能体APP上线后爆火!全球首款Office智能体APP,开启AI办公新时代

新消费日报

使用 Run:ai Model Streamer 实现模型的高效加载

Se7en

通义灵码+云效 DevOps MCP:通过云效工作项自动生成代码并提交请求

阿里巴巴云原生

阿里云 云原生 通义灵码 MCP

Web3的成功离不开什么?

PowerVerse

去中心化 云算力 web3 #区块链

中烟创新AI审核平台,打造烟草行业采购全链条合规管理新范式

中烟创新

华南会议|最新日程,2025 Altair区域技术交流会,报名火热进行中!

Altair RapidMiner

人工智能 AI 汽车 数字孪生 CAE

ToDesk优惠码是什么,如何使用?

小喵子

优惠券 远程控制 ToDesk todesk、

如何通过ETLCloud实现跨系统数据同步?

谷云科技RestCloud

MySQL 数据库 数据同步 ETL 数据集成

深度解读「高盛」人形机器人双研报:主流人形机器人公司梳理和商业化瓶颈(附报告)

机器人头条

科技 大模型 人形机器人 具身智能

全维度测试通过!DolphinScheduler 3.2.0单节点部署与验证实录

白鲸开源

大数据 开源 性能测试 Apache DolphinScheduler 工作流任务调度

远控安全进阶之战:TeamViewer/ToDesk/向日葵设备安全策略对比

小喵子

安全 远程办公 远程控制 ToDesk

高德发布智能眼镜解决方案| 携手AR领军企业,引领智慧出行新未来

高德开放平台

AI AR loT 高德地图 AR眼镜

5月 | 塞讯模拟攻击库更新汇总

塞讯科技

网络安全

告别“算不清的账”,甲方安全的“ROI 之痛”有救了!

塞讯科技

rol

优酷视频互动曝光率优化实践_文化 & 方法_阿里巴巴文娱技术_InfoQ精选文章