客户端系统化体验分析:一种无入侵的设计与实现

简介: 本文主要阐述一种客户端体验分析的思考与系统化实践。优化用户体验的关键点在于如何评估衡量用户体验,传统用户体验分析度量主要有埋点耗时统计及录屏帧耗时统计等手段,这些方法存在开发接入成本较高,分析结果粒度较粗等问题。为了解决传统体验分析中的若干问题,我们提出了基于无线AOP的端到端链路分析和评估方法,该方案采用无入侵方式降低了接入成本,同时将交互链路片段化并产出细粒度分析结果,实现了客户端上用户行为链路的标准化度量及客户端全景体验分析,为客户端体验问题的定位及优化提供有力的支持。

原创 舒徐、玖味、大蜀 淘系技术  2月25日


本文主要阐述一种客户端体验分析的思考与系统化实践。优化用户体验的关键点在于如何评估衡量用户体验,传统用户体验分析度量主要有埋点耗时统计及录屏帧耗时统计等手段,这些方法存在开发接入成本较高,分析结果粒度较粗等问题。为了解决传统体验分析中的若干问题,我们提出了基于无线AOP的端到端链路分析和评估方法,该方案采用无入侵方式降低了接入成本,同时将交互链路片段化并产出细粒度分析结果,实现了客户端上用户行为链路的标准化度量及客户端全景体验分析,为客户端体验问题的定位及优化提供有力的支持。



介绍



本文介绍的技术方案,旨在阐述一种通用的客户端用户体验评估、排查方案,通过客户端切面能力实现自动化插桩统计用户行为、系统行为、业务逻辑、服务端请求等各个片段耗时,同时通过全局唯一的客户端链路ID关联到多应用分布式服务端的链路ID,实现客户端到服务端的完整链路的打通。


体验度量计算部分通过实时日志服务及实时/离线计算,根据链路ID、特征ID、场景进行聚合分析处理,产出实时链路、离线的聚合场景数据进行客户端全景分析,实现用户体验行为可追溯和全景化。结合自动化脚本、客户端链路采样,实现用户体验自动化聚合分析,最终帮助开发发现用户体验问题,并精准优化。


本方案的特点包括:


  • 无入侵:只需引入客户端切面SDK,无业务逻辑修改,接入成本低。时也提供开放能力,允许业务按照切面数据规范,实现定制能力。
  • 高效:平台实时采集用户体验链路日志,产出实时链路、聚合链路可视化数据,无繁琐的人工统计耗时。
  • 精准定位:用户体验链路解构到方法级别,一键定位体验耗时问题,彻底优化。



技术方案



优化用户体验的首要问题是如何评估衡量用户体验,传统用户体验衡量方案两种,一埋点耗时统计,二录屏帧耗时统计,已有的两种传统方案的开发接入成本较高,耗时节点定位不够清晰,所以我们期望提供一种标准&高效的用户体验评估方法。


▐  客户端链路


基于AOP能力对用户产生的点击、滑动、长按等操作进行统一捕获并作为一条链路的起始点,将用户行为触发的一系列Android生命周期的变化以及服务端请求发起、网络传输、客户端响应等作为链路过程,最后由界面绘制布局变化作为链路的终点,从而可形成一条由用户交互行为到服务端请求再到客户端布局更新的链路闭环。该客户端SDK对链路中每一节点的耗时以及节点间调用关系进行记录与串联,清晰准确地还原了交互链路中各节点耗时以及调用层级关系。


image.png


  服务端链路


服务端链路基于现有的服务端分布式调用链路,通过客户端traceId关联服务端traceId,可以打通客户端到服务端的整个链路。具体内容不另加赘述。


 数据处理


结合客户端链路、服务端链路,我们可以采集到用户体验链路上每个环节的详细信息,通过客户端埋点日志及实时计算(基于阿里Blink),可以呈现用户每次点击的实时链路片段;此外通过特征聚合、场景聚合,产出应用大盘聚合数据。


客户端切面SDK提供统一的插桩打点标准,用户体验链路数据自动采集上报,结合团队自研的自动化遍历任务或人工体验、用户客户端采样,做到0成本获取用户体验数据。同时全端统一埋点链路数据详细的记录了客户端、服务端方法级别的耗时,精准定位问题根因,优化用户体验效率大大提升。


 全端链路方案VS传统方案


技术方案

接入成本

使用成本

定位效率

业务埋点

代码改造,成本大

成本一般

信息不全

录屏帧耗时

无接入成本

成本大

只能暴露耗时,很难定位

全端性能体验

无侵入,成本小

成本小

精准定位

以躺平APP发现Tab下拉刷新为例


image.png


视频中页面下拉刷新的操作对应的实时链路如下,链路整体耗时857ms,整个链路的细节如下图:


image.png


用户链路聚合分析示例


通过切面SDK插桩提取用户链路特征值,对用户体验链路可以在不同维度进行聚合分析。配合大数据处理能力,产出App-页面-行为多维度的聚合数据,主要用于App大盘监控、用户热点场景链路分析


image.png



用户体验优化案例



  躺平家App白屏case优化案例


image.png


该案例为点击首页某个按钮后进入下一个界面出现了白屏,整体链路耗时1886ms,从上图的链路中可以看出主要有两个原因:


  • H5界面从loading开始到结束耗时超过1000ms
  • 出现5个顺序串行执行的服务端请求,该5个请求耗时将近约700ms


针对第一个H5界面loading时间长的原因,前端需通过发布前端资源缓存,将(HTML/JS/CSS/IMG…)打包预加载到客户端或优化代码的方式降低页面加载耗时


针对第二个服务端请求耗时的情况,可通过并发请求或合并接口等方式降低串行请求带来的时间成本


 页面并发请求优化案例


以点击用户头像进入用户个人主页为例,个人主页加载分为两部分,1加载头部的个人信息,2内容Feed流。从视频中可以明显的看到头部个人信息很快就加载完成了,但是内容Feed流加载白屏过渡很明显。具体原因见下方通过全端链路定位分析


image.png


image.png


在图示的全端用户体验链路中,页面加载会发起多个服务端请求,观察发现请求4在请求3的reponse返回后才串行发起。


  • 内容Feed流的请求4(耗时284ms)参数依赖请求3接口返回,导致请求3、请求4必须串行执行,必然造成个人主页个人信息加载完成后,内容Feed部分未加载完成,需要白屏等待。
  • 通过优化个人主页代码接口,拆分依赖关系,使得请求4在页面初始化时同请求1异步发起请求,理论上可以节省78ms。页面耗时599-78=521ms,用户体验进一步优化,页面响应用户体验提升13%。



总结与展望



基于客户端切面能力&服务端分布式链路追踪技术,将客户端服务端进行数据打通,提供了一站式的用户体验分析平台,以数据化的思路评估优化用户体验,帮助更多客户端发现并优化用户体验问题。


未来会进一步深入建设,同时开源提供插件接入能力,惠及更多的App客户端体验优化,为更多的客户端提供丝滑的用户体验:


  • 结合数据分析,算法预测,优化用户体验监控预警能力
  • 埋点数据协议,开放能力,提供定制,场景编排能力
  • 更多纬度的App数据建设
  • 其他更多的围绕无线AOP领域的建设等


同时计划年内将端到端的通用切面能力及平台数据分析能力服务化并逐渐开源及上云服务,也欢迎各位客户端/服务端/数据质量以及效能方向的同学加入共建。

相关文章
|
4月前
|
XML 安全 Java
App安全检测实践基础——工具
App安全检测实践基础——工具
110 0
|
6月前
|
人工智能 自然语言处理 搜索推荐
关于代购系统带来的便利性的研究报告
**摘要:** 代购系统研究报告揭示了其在跨越地域限制、提供多样化商品、节省消费者时间和成本方面的显著便利性。该系统通过商品展示、订单管理等功能,实现全球化购物。用户反馈显示高满意度,但也存在物流延迟和商品质量顾虑。代购系统促进了跨境消费,改变了消费观念,并带动相关产业。面对法规挑战和市场竞争,未来将倚重技术创新和服务升级以实现规范化发展。
|
7月前
|
云安全 人工智能 安全
面对网络威胁,2024年如何做好网络安全工作
为了应对网络安全威胁,企业和个人需要加强网络安全意识,采取有效的安全措施和技术手段,保障网络和数据的安全,维护网络空间的安全稳定。
防范直播网站源码搭建多重问题的背后重要功能
冗余功能的实现对于直播网站源码平台的稳定性和系统的可用性使至关重要的,冗余功能有效地提高了平台的可靠性和持久性,所以实现直播网站源码冗余功能是不可或缺的一项重要流程。
防范直播网站源码搭建多重问题的背后重要功能
|
JSON NoSQL 安全
漏洞赏金猎人笔记-使用自动化工具搭建攻击面监控平台的一般性思路
前言 本文是一篇笔记,原文作者是@pry0cc(已经50多岁了),本文内容主要是对原文相关内容做的笔记,出于易读性考虑,对部分字句有所删改。
429 0
漏洞赏金猎人笔记-使用自动化工具搭建攻击面监控平台的一般性思路
|
监控 数据可视化
大厂舆情工作解决方案
大厂,它既包括时下的互联网大厂,也包括传统的大厂,大型综合集团等等,仅是个泛称。
大厂舆情工作解决方案
|
监控 安全 网络协议
网站被黑客攻击的两大因素分析处理
2020年3月中旬,我们SINE安全收到客户的安全求助,说是网站被攻击打不开了,随即对其进行了分析了导致网站被攻击的通常情况下因素分外部攻击和内部攻击两类,外部网站被攻击的因素,网站外部攻击通常情况下都是DDoS流量攻击。
1066 0
网站被黑客攻击的两大因素分析处理
|
前端开发 数据安全/隐私保护 开发者
设计手机直播源码后台系统,不容忽视的四个要点
设计手机直播源码后台系统,不容忽视的四个要点
|
监控 安全 网络协议
【网络安全】网络安全攻防 -- 黑客攻击简要流程
【网络安全】网络安全攻防 -- 黑客攻击简要流程
356 0
|
运维 分布式计算 资源调度
走近华佗,解析自动化故障处理系统背后的秘密
集群医生华佗是集群自动化故障监测和处理系统,是平台和运维对接的关键系统,它承担了飞天平台自动化故障处理系统的任务。如何能又快又好地发现和解决线上故障呢?本文为您解析自动化故障处理系统背后的秘密。一起来了解华佗是如何提升集群的故障发现、处理的效率和准确性,解放运维人员,提高飞天稳定性和可靠性的 。
5690 0