从QoS到QoE,RTC的用户体验该如何评判?
关于QoS指标:最小行为粒度和最小阈值感受
指标计算对齐用户行为和反馈:透明可验证
用户主观体验QoE如何度量
QoE是用户对“体验”的主观满意度,满意度出现波动可能是因为技术问题导致的,因为房间活跃度、主播互动内容质量的波动造成的,也有可能是因为多个综合原因造成的。我们在探索QoE和QoS关联时,应尽量剔除非QoS原因引起的用户体验波动因素,否则会引入过多变量,让问题变得更复杂。
QoE和QoS的关联探索
QoE和QoS指标都可以体现和衡量用户体验及RTC质量,但单独使用却都不够全面。我们需要把QoE和QoS关联起来看,一方面分析QoE相关问题背后可能会有哪些QoS原因,对线上用户反馈的问题起到快速诊断作用;或者总结当QoS指标发生变化时会触发哪些QoE反馈与波动,对线上问题及QoS调整优化起到提前感知预警作用;另一方面,将QoE作为用户体验优化的目标,将QoS作为具象化的手段,通过优化QoS指标实现优化QoE是更可行、更高效的方法。
QoE与“直接”QoS指标的关联和极值探索
QoS指标中有一类是与用户体验直接相关的指标,比如进房成功率,首帧发送/解码成功率,SDK崩溃率等。这些指标体现的是RTC的可用性,它们对用户体验的影响是非黑即白的,因此对于优化目标也是“极致”的。以“进房成功率”为例,居高不下的拉新成本使每一位新用户的“连麦初体验”都非常珍贵,因此抖音对于“进房成功率”指标的优化“极值”也很明确——100%。也就是说,任何一次进房失败都是不可接受的。
乍一眼看上去这个要求似乎过于苛刻,因为“进房成功率”不止和RTC有关,还和业务层调用、网络、APP稳定性等有关。但当我们将进房步骤进行详细拆解并对每一个步骤的失败进行归因分析后会发现,这个目标并没有那么不合理。当前,抖音“进房成功率”已基本接近100%,火山引擎RTC对抖音“进房失败”问题的未归因比例保持在2%以内。
对于企业和开发者来说,比将指标的优化目标设置为100%更重要、更能落地的是,通过比较自身与抖音在同一个归因上的差距,找到自己的问题是什么,明确下一步优化空间、路径和优先级。
QoE与“间接”QoS指标的关联和极值探索
QoS指标中的另一类是与用户体验间接相关的指标,比如卡顿率、卡顿时长、首帧耗时、端到端延时、CPU占用率等,这类指标大部分是“阈值”类指标,它们并不直接指征用户体验受到了影响。用户对这些指标具有一定容忍度,例如他们有时可以容忍“轻微”的卡顿,但一旦到了某种程度就不能忍了。但是不同场景、不同类型用户的容忍度不同,比如1v1聊天场景对卡顿的容忍度比多人聊天要低,并且这类指标优化的“极值”没有标准答案,因此企业和开发者希望了解用户体验和这些QoS指标之间的关系,以解决影响用户体验的真正问题。
我们以“卡顿”为例来探索它们之间的关系。当发生卡顿时,“用户不爽”和“卡顿严重程度”的关系对应关系如下:
通过对QoE问题与QoS异常数据的全量归因分析,火山引擎RTC使用了“异常退出”作为标志QoE行为的锚点来衡量卡顿对用户体验的影响,发现QoE指标和QoS指标存在如下的“乙型曲线”关系:
在音视频质量问题很小的情况下,绝大部分用户是感受不到体验问题的,也很少会有主观动作;当质量恶化超过某个阈值(用户行为敏感点)时,用户的主观动作比例会陡然增加;到达某个阈值(用户行为堕化点)后,质量问题对用户行为的影响开始堕化,质量再恶化也不会导致主观动作的增加。
火山引擎RTC在不同业务场景、不同时段,不同业务周期上进行了反复绘制论证,认为这条“乙型曲线”是一个适用于多场景的、描绘QoE和QoS关系的模型。尽管曲率、拐点的值会变,但一定存在这几个对用户体验产生质变影响的“阈值”,正是这些阈值,对指导用户体验优化有着非常重要的意义。
下图中,横轴为卡顿持续时长,柱状图是样本数量,曲线是退房比例,从上至下依次为1V1 PK连麦主播,1V1私聊主叫和被叫,多人语聊房的连麦嘉宾和连麦主播的异常退房比例。
可以看出,不同场景和用户对卡顿的灵敏度和容忍度是不同的。1v1场景对于卡顿的感受最为敏感,特别是1v1 PK场景,卡顿持续4s左右就会有很多用户明确感知到卡顿开始退房,到20s左右逐渐稳定;多人语聊场景对于卡顿的容忍度较高,不像1v1这么轻易退房,且连麦嘉宾和连麦主播对于卡顿的主观感受模型是不同的。而对于连麦的主播来说,如果发生卡顿,他会更倾向于更换嘉宾而不是退房。无论什么场景或用户,体验无损点(最佳点)都在2s左右或以下,2s的持续卡顿就会对用户的主观体验造成损伤,我们的优化路径,应先将指标优化到用户行为敏感的点,并密切关注所有指标中最靠近用户堕化以及反馈占比最高的问题场景,最后将最佳点作为体验优化的“极值”追求。
每天3万+反馈的“异常特征库”,命中率高于整体大盘1倍
有时候,明明几个QoS指标表现都好好的,线上还是出现了诸如无声、回声、黑屏、模糊等异常反馈。这些反馈量很小却很影响用户体验,又很难通过标准的QoS指标来监控,问题可能出在RTC、平台或用户任意一方,排查起来费时费力,如鲠在喉。
在长期大规模的实践中,火山引擎RTC建立了一个超大的“异常特征库”,它们来自于字节系产品、数亿用户的真实反馈,每天的数据量达到3万+,在进行分析、归因、验证后,经一定的标准筛选进入“异常特征库”。一旦上报数据命中“体验异常特征库”中描述的case,用户主观体验的受影响程度和差评几率都远远大于普通场景。
以“无声”为例,火山引擎RTC将“无声”问了拆解成“听不到对方声音”(上行无声)和“对方听不到我声音”(下行无声)两类,总结了mic被占用、声道选择错误、播放帧率异常等30+归因。目前,火山引擎RTC对于无声问题反馈的归因比例已超过了98%,其中,命中“异常特征库”的比例比命中QoS指标大盘的比例整体上高出了一倍,证明了“体验异常特征库”对于处理QoE问题有非常大的价值。
通过火山引擎RTC在QoE、QoS关联这个话题上的持续突破以及建设“异常特征库”的努力,当前,火山引擎RTC对线上用户体验问题的归因比例已经超过了95%。这意味着95%的问题都能快速定位到根因,已达到业内顶尖水平。
更智能、更犀利的数据监控产品——智能阈值告警
推荐阅读
欢迎关注