zoukankan      html  css  js  c++  java
  • 数据产品实战(二):ABTest平台

    1、背景

    数据驱动增长的方法论,帮助Facebook、Google等如此大体量的公司继续保持高效的业务增长,在国内字节跳动是最重视的数据驱动的公司,也因此获取了巨大的成功。在互联网圈,通过数据手段来驱动业务增长已经达成了共识,数据已经成为公司发展不可缺少的可靠手段。其中A/B测试坐班数据取驱动增长的核心方法,可以有效的提升流量的转化效率和产研的迭代效率。目前公司进行A/B实验已经比较多,手动实验的方式效率比较低,因此尝试搭建了ABTest平台。

    二、A/B测试简介

    A/B 测试是一种对比分析方法,通过对流量进行细分和随机实验,排除了其它因数的干扰;并监控和跟踪实验效果,来判断实验所代表的策略的可行性和有效性。

    • 对比:通过对流量的随机细分,来进行有效的独立随机实验,可以排除外在条件的影响,因此更加科学。
    • 分析:通过跟踪和分析实验的事实效果数据,来判断实验的可行性和有效性,因此更加精确。

    下图为简单A/B测试的流程示意图:

    将目前人群随机分成2部分,其中一份用户对其展示A页面,另外一份用户展示B页面。然后通过观察其人群最终的转化率,来判断哪种形式比较好。下图可以明显的发现A页面的转化率高于B页面。因此最终我们将对全量用户采用A页面的方案。

    A/B测试流程示意图

     

    应用场景

    A/B 测试解决的是策略优化的问题,即从多个可选策略里找出最优策略。常见的应用场景包括:

    • 灰度发布:技术&算法迭代
    • 功能优化:界面模块、样式风格、交互方式等
    • 内容优化:推广海报、落地页、内容模块、文案等
    • 运营优化:运营策略、沟通话术等

    核心概念-流量切分

    主要参考了Google、美团、有赞等公司的流量使用规则,设计了符合我们公司现在阶段的流量切分规则。

    引入流量域和流量层2个概率

    • 流量域:流量域之间的流量是独立,相互之间永远不相交
    • 流量层:流量层之间的流量是正交,同级的流量层之间都是同一份流量,只是在进入另一层的时候会随机打散,以此来保证流量的正交。
    • 流量域和流量层可以相互嵌套,最终达到了流量的切分的目的

     

    流量切分规则介绍

    如上图所示:

    域A占比80%,域B占比20%,这两部分流量是独立的,一个用户只会在某一个域中。

    层1、层2、层3、层4都是同一份流量,只是被随机打乱过,4个流量层的排序是不同。实验A是采用层1的流量来进行测试,层2进行实验的话,流量是被打乱进入层2,这时候层2中的每一个实验组都会同等比例进行实验A的测试,如果2个实验作用于同一个结果的话,是会被干扰的。但是因此个实验组的干扰的结果是同等比例,因此结果结果依旧有效,但是这样就无法得出准确的定量分析结果,只能等到准确的定性结论。

    实验H是测试是在域B中进行的,这部分流量是纯独立,没有进行任何确其他实验,因此实验H得到的结论是一个准确的定量分析结果。

    实验E和实验D是在层4中的域A3和域A2中进行,因此这个2个实验的流量是完全独立的,这2个实验组结果是互不干扰的。但是这2个实验都会受到层1、层2、层3中的实验组的结果。

    流量域和流量层是可以无限嵌套的,如果你的流量足够大,就可以无限的进行切分,以适应复杂业务的大量的AB测试。这个部分就是ABTest平台最核心的流量切分规则。

    因此大家可以根据对应的业务情况,选择对应的流量域和流量层的流量进行AB测试,以达到有效A/B测试的目的,最终能输出准确的AB测试结论,帮助业务找到正确的前进方向,真正做到数据驱动增长。

    三、ABTest技术方案

    AB测试系统技术方案

    如上图所示,AB测试系统从首先从web后台页面进行实验的配置,然后中台server进行流量分配,接下来存储记录行为操作,然后给业务层提供实验配置以及流量切分服务,最后客户端请求业务最终展示给用户。

    数据回收:客户度将用户行为日志上报给loghub,在odps记录日志数据,然后对数据指标进行计算,最后把数据回流到数据报表中,展示到AB测试平台中。

    数据流

    数据流负责收集ABTest系统相关的日志并且产出离线的数据报表,如下图

    核心记录埋点信息

    • 实验状态:expStatus;枚举值:待上线0 删除1 上线2 下线3 全量4
    • 控制类型:expControlType;枚举值:客户端1 服务端2
    • 实验ID:expId;AB实验的唯一标记
    • 实验组状态:expGroupStatus;枚举值:上线0 下线1 删除2
    • 实验组ID:expGroupId;AB实验的某个实验组唯一标记
    • 分组依据:expReqGroupType;基于用户ID、设备ID、手机号的分类依据
    • 实验对象ID:expReqGroupId;用户ID或者设备 ID

    根据这些埋点信息就能自动追踪每个实验的每个实验组、对照组的数据情况。一般包括曝光点击、活跃、回访、加购、支付等。

    四、解决的痛点

    • 流量的的隔离、复用以及细分。
    • 实验组定向条件复杂,数据分析和server需要重复圈选用户,还容易造成偏差。
    • 节省线下沟通成本,PM可以自行控制流量,减少出错的概率。
    • 可视化配置后台,简单的数据直接自助回收。
    • 所有业务AB实验汇总,实验周期有冲突时可以错峰进行。

    五、展望

    1.事件分析系统能接入ABTest系统,实现ABTest数据的自助分析和数据洞察,帮助业务方更好的理解数据并优化实验。

    2.更丰富的个性化转化目标,包括与埋点系统打通以及支持自定义转化目标等;自动进行实验显著性的校验

    3.上线评测报告功能,通过自动化产出实验评测报告,来给场景实验做全面充分的评价。

    4.接入用户分群功能,直接实现用户条件的圈选,这样ABTest能实现AB测试全流程的一条龙服务。

    5.提升ABTest系统在公司的影响力,让所有业务的AB测试接入系统进行,提升AB测试的效率。

    发布于 09-29
  • 相关阅读:
    VC 中Combo Box的使用 Chars
    毕业论文摘要的书写方法和技巧 Chars
    VC调用DLL Chars
    《CLR via C#》Part1之Chapter3 共享程序集和强命名程序集(二)
    委托的使用(转)
    新概念系列之《Lesson 133 Sensational news》
    《CLR via C#》Part1之Chapter2 生成、打包、部署及管理应用程序及类型
    新概念系列之《Part2 Lesson 17 Always young》
    新概念系列之《Part2 Lesson 4 An exciting trip》
    新概念系列之《Part2 Lesson 16 A polite request》
  • 原文地址:https://www.cnblogs.com/purple5252/p/13859290.html
Copyright © 2011-2022 走看看