# 一、棱镜是什么?
小桔棱镜是一款专注于移动端操作行为的工具,涵盖APP`操作回放`、`操作检测`、以及`数据可视化`能力。本篇我们会从产品设计理念和技术实现思路上对棱镜进行整体介绍。
### 功能结构图

- - - -
# 二、为什么要做棱镜?
移动端作为当前大多数业务的几乎唯一载体,决定了我们日常的开发、测试、运营分析、产品迭代工作都要围绕它进行,这样一来移动端上的操作行为就显得格外重要,运用好了就可以带来效率提升,创造用户价值和商业价值,那我们如何才能更好的运用它们呢?,**小桔棱镜就是为此而生**。
- - - -
# 三、棱镜有哪些亮点?
- [x] **零入侵**
业务代码无需任何适配。
- [x] **高可用**
各项能力已在生产环境平稳运行一年以上。
- [x] **自研操作行为标识指令**
在支撑棱镜已有的功能外,或许可以有更大的舞台。
- [x] **丰富灵活的操作行为策略支持**
基于DSL实现丰富的操作行为策略支持,可满足通常的检测需求。
- [x] **功能全面**
围绕移动端操作行为全方位能力覆盖,提供更多可能性。
- - - -
# 四、棱镜有哪些能力?
小桔棱镜从最初诞生想法至今已有近两年时间,经过我们不断的思考实践,目前整体演变为三部分:
**第一部分**是覆盖埋点全流程的移动端解决方案,包括埋点数据可视化范畴的`多维度PV/UV`、`热力图`、`转化率漏斗`、`页面停留时长`等功能,以及埋点辅助范畴的`快速注册`、`测试`工具。这部分的意义在于:它改变了大家日常看数据的方式,**让原本就擅长使用数据的同学可以更便捷的用数据,让原本不擅长使用数据的同学开始喜欢用数据**。
**第二部分**是棱镜**最具创新性**的功能,也是整个棱镜平台的基础,我们基于`自研的操作行为标识指令`实现了在`APP端的操作回放(视频回放 / 文字回放)`。相比于传统的静态埋点数据它提供了动态的操作行为,可以帮助大家更好的定位问题、优化产品,为用户创造价值。
**第三部分**是`APP端实时操作行为检测`,同样基于`自研的操作行为标识指令`以及`语义化的操作行为策略描述方案(DSL)`,支持丰富的语义和灵活的策略配置。它可以帮助我们实现端侧场景化需求,未来还希望用在客服场景中来提升用户体验,创造更多用户价值。
接下来我们详细介绍各部分功能:
- - - -
# Part.1 埋点全流程解决方案
如上文介绍,这部分的重点在于移动端埋点数据可视化,单纯从技术角度看并非稀奇之事,业内应该有很多类似实践,因此我们更多去讨论它的应用价值:
## 1.1 对现有模式的思考
就拿我们集团来举例,大家日常要看一些页面埋点数据时大概有这两种途径:
**途径一** 依赖各自BU的数仓计算整理
1. 向数仓同学表明自己的数据查看诉求后,数仓同学消化需求并排期开发。
2. 数仓同学依据业务埋点说明文档,去埋点底表检索目标数据并计算产出到Excel。
3. 需求方拿到Excel,基于埋点ID来查看对应数据。
**途径二** 直接去数据平台查询
1. 依据业务埋点说明文档寻找目标页面内的埋点ID。
2. 在埋点管理页面检索到目标埋点并查看数据。
3. 如果对数据维度有更多要求,则需要前往提取工具自己写SQL计算。
## 1.2 棱镜带来的改变
在有了小桔棱镜后,流程会简化到你只需:
1. 打开棱镜版APP查看数据即可。
注:展示数据已作特殊处理,仅供介绍使用。
相信这样的改变还是令人兴奋的,那么除去基本的把埋点数据“镶”在页面元素上以外,我们还做了哪些工作来优化这个流程呢? 或者说数据可视化的最佳姿势应该是什么?
### 1.2.1 统一的埋点规范与数据计算方案
数据需求方几乎从来不会满足于只看笼统的PV/UV数据,在我们交流的过程中大家最基本的诉求有:`分城市查看`、`分用户类型查看`、`被复用埋点分位置和分ID查看`等,对数据源的多维度提出了很多要求。
因此我们联合**车服数仓同学**制定了一套统一的埋点规范和数据计算方案,把控从埋点上报、计算、存储到请求查看的全流程,保证用户在APP端简单操作就可以轻松切换数据维度。
### 1.2.2 自然的交互设计
一方面通常一个页面中的埋点众多,另一方面数据可视化也涵盖好几块功能,如多维度PV/UV、热力图、转化率漏斗、页面停留时长等,这种情况下良好的交互体验和UI设计才能保证用户在复杂的页面和数据中可以游刃有余。这对棱镜也提出了很高的要求。
在整个迭代过程中我们与设计师不断碰撞,我自己身为一名开发也时常思考如何给用户更好的体验,经过了很多个版本的迭代,最近这一版虽已“面目全非”,但确是我们最满意的一版,我甚至能感受到用户在使用过程中的那种愉悦之情。
- - - -
# Part.2 操作回放
## 2.1 为什么要做回放?
最初是在共享汽车业务中碰到了一些用户问题,经调研归纳后突然意识到一个问题:虽然我们每天都在耕耘移动端产品,可是**我们根本不知道我们的用户到底在如何使用我们精心设计的产品**,可能用户对一个页面或一个按钮的认知与我们设计时的初衷有所偏差甚至根本不同,可能我们觉得一个很合理的按钮位置对于用户来说并不容易找到,类似的问题应该会有很多,这就造成了我们与用户之间的认知偏差。
因此当时有一股冲动就是要让大家也能容易的看到这些问题,给大家一个拥有上帝视角来理解用户的能力,再结合灵活的筛选方式,帮助大家去**发现那些隐蔽而又迫切的用户问题**。
### [Demo展示]