实用新型专利申请技术交底书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本发明公开了一种数据驱动的产品优化方法:A/B测试。A/B测试是在两个或多个产品的优化方案中选出最优方案的方法。例如,期望优化产品的某个特性——通常是期望某项数据提升时,需要对产品某处进行调整。对此可以提出若干版本,但是现有的理论无法判定哪种方案最佳,此时可将这几个版本同时上线,以小流量运行一段时间获得数据反馈,来判断版本优劣。如图1.1示,对软件局部颜色进行调整形成A版本和B版本,并用转化率表示客户认可的群体所占的比率。

图1.1

为达到上述目的,本发明提供了一个数据驱动的A/B测试产品优化系统,可让使用者跨设备统计和衡量用户与使用者的App互动的情况,并且可以通过数据挖掘和分析对用户体验、转化率和广告等方面进行针对性的优化。

A/B测试系统为使用者提供产品A/B测试所需的SDK工具和基于Web的管理和分析系统,使使用者能够方便地进行测试,收集和处理数据,并查看分析报告。

A/B测试系统的功能框图如图4.2.1所示。

图4.2.1

A/B测试系统的流程如下

(1)接入AppAdhoc 的SDK,用于收集App的用户交互数据并进行统计分析。

(2)设定优化指标,优化指标的相关数据将在App 运行时通过SDK 发送到AppAdhoc 的数据收集服务器,存储起来并进行分析。APP 通过SDK 发送的优化指标必须和Web 平台上定义的优化指标一致,才可以正确地统计到数据。

(3)根据优化指标来设计不同的迭代方案,在迭代方案中明确测试变量。

(4)建立模块开关,通过模块开关来控制测试变量。

(5)开发新模块,将创建好的优化指标和模块开关集成到APP的代码中。

(6)创建试验,选定创建好的模块开关和优化指标。试验运行一段时间后,可以在“试验数据”中查看试验的统计数据。

A/B测试系统概要流程图,如图4.2.2所示

图4.2.2 A/B测试系统Web前端详细流程图如图4.2.3

图4.2.3

A/B测试系统Web前端详细流程功能定义:

优化指标是对App 业务数据的量化衡量计数,是用户根据衡量标准需要自己定义的业务相关指标。开发者可以使用自定义的模块变量和指标来区分并衡量不同情况下用户和App 的交互数据或任何其他业务数据之间的差异。通过定义监测指标,可以从各种角度了解用户与App 互动的情况。优化指标的确定办法是从公司的业务目标出发,找到一个能衡量业务价值的核心指标。该指标通常和公司营收相关,是一个易于理解和沟通、可测量及量化比较的比率形式的指标。有了这个核心业务指标,就可以根据应用性质把它分解为多个应用关键指标,然后围绕各个关键指标来制定相应的具体开发和试验优化指标。

指标的三个层级示意图如图4.2.4所示

图4.2.4

定义指标:在向A/B测试系统发送自定义指标值之前,必须先在A/B测试系统的Web 平台的中对

其进行定义。自定义的优化指标有以下配置值:

(1)指标名称:这是一个用来代表指标的唯一标识符,命名只允许英文字母和数字。

(2)指标描述:这是用来对指标进行说明的描述,可包括任意字符。

同一个指标在发送指标数据时使用的名称和定义时指定的名称必须一致,没有定义的指标,A/B测

试系统是不进行数据统计的。

复合指标不需要像优化指标一样汇报数据,它包含一个计算公式,用来在已有优化指标的基础上计算出一个复合型的指标数值。

计算公式:支持在现有优化指标上进行+ - * / 和() 运算。例如,转化率的复合指标计算公式可以定义为:“ConversionStat/PageviewStat”,转化次数ConversionStat和页面浏览量PageviewStat 都是需要汇报的优化指标。

如果不再关注某个优化指标,可在A/B测试系统中把该指标转为不关注状态,系统将不再展示该指

图4.2.5

详细报告:展示所选定的各测试版本在某个优化指标上的统计分布和详细时间序列数据。在这里,可以详细查看和深入分析各试验的动态表现,得出更入微的结论。

统计分布图:统计分布图直观展示了试验组中各测试版本的指标总值、均值、相比缺省版本的变化、95%置信区间、以及指标数据的分布形态,如图4.2.6所示。

图4.2.6

(1)Clients:该测试版本在统计日期范围内的活跃用户总数;

(2)总值:该测试版本在统计日期范围内的指标数据之和;

(3)平均:该测试版本在统计日期范围内的指标数据用户均值,等于总值/ Clients;

(4)变化:该测试版本的指标数据均值相比缺省版本的指标数据均值的变化百分比;

(5)95%置信区间:根据95%置信度计算出来的该测试版本的指标数据相比缺省版本的变化百分比的可信范围;

统计数据的意义:首先要正确地理解和认识“变化”和“95%置信区间”这两个概念。例如图中测试版本Test4Layout 的变化值是26.7%,95%置信区间为23.4% ~ 30%,意思就是Test4Layout 版本的AdClick 指标比缺省版本平均提升了26.7%,但这个数值是个不准确的大概值,准确可信的变化百分比的数值范围应该是23.4% ~ 30%。换个说法:Test4Layout 版本的AdClick 指标数据有95% 的可能性比缺省版本提升23.4% 以上。从分布曲线的形态上看,越瘦的曲线数值分布越集中,试验的可信度更高。

数据报表:序列图展示和对比了各测试版本在指定优化指标上的走势差异,如图4.2.7所示。

图4.2.7

详细数据表格展示了包括缺省版本在内的所选定的各测试版本的时间序列指标数据。

标准差是指某小时范围内统计的所有指标数值和该指标均值的平均差值。标准差越小,说明该小时范围内指标数值波动越小。

A/B测试系统后端详细流程图如图4.2.8

图4.2.8

A/B测试系统后端详细流程功能定义:

集成SDK的客户端:用户首先需要集成A/B测试系统提供的SDK,然后按照其提供的接口发送客户端数据到服务器。

模块开关处理:SDK首先会请求后端模块开关处理程序,后者依据用户在Web前端设置的试验数量、每个试验分配的流量的数量来计算产生模块开关。计算方式为:参与试验a的设备数量=试验a的流量*该客户端的总设备数量/总的试验流量,总的实验流量是100,然后以1为单位给试验分配流量。

服务器端tracker:接收客户端发送来的数据然后转化成JSON数据格式存储到kafka,JSON数据格式如下:

{"app_key":"asdfaf","client_id":"asdfasf","summary":{},"custom":{},"stats":[{"key":"asdfasf","value":10,"time stamp":123133,"experiment_ids":[]}]}。

kafka:开源的分布式消息系统,用于在A/B测试系统接收客户端上报的数据并进行存储。

实时数据处理:实时的从kafka获取数据,然后依据均值、方差、求和、置信区间、变化显著性的计算规则计算每个实验的优化指标的数据。求和就是某个试验的优化指标的总和;均值就是优化指标的总和/参与这个试验的用户数;方差就是优化指标的平方和/参与这个试验的用户数- 均值* 均值。

置信区间计算方式如下:

(1)ci=1.96*√(方差/参与这个试验的用户数)

(2)[均值- ci,均值+ ci]

变化显著性计算方式如下:

(1)变量定义:默认版本的优化指标a的均值x1,实验版本的优化指标a的均值x2,默认版本的优化指标a 的方差v1,实验版本的优化指标a的方差v2,默认版本的参与设备数n1,实验版本的参与用户数n2 (2)z_value = (x2 - x1) / √(v1/n1 + v2/n2)

相关文档
最新文档