一. 概述

编程实验:指的是通过代码编程进行AB实验,广泛使用于前端优化、策略优化和后端算法优化多种实验场景,包含客户端和服务端实验。 前置条件:接入客户端SDK或者服务端SDK,详见:应用接入

二. 应用场景

如何选择实验类型?适用场景是什么?
  • 服务端实验 :指通过服务端获取实验分组信息并控制配置生效或下发的实验。
    • 部分功能只能由服务端来控制,比如内容分发算法(如用户打开今日头条以后在feed流中会看见什么内容)、由服务端逻辑控制的产品功能(如推送)等。
    • 不要求唤起APP时就使实验配置生效。客户端有充分时间向服务端发起请求,获得实验配置后再向用户展示策略。
  • 客户端实验 :指通过客户端获取实验分组信息并控制配置生效的实验。
    • 部分功能只能通过客户端控制,比如客户端的UI样式、交互功能设计等。
    • APP唤起时,配置即需生效。比如我们要针对APP的开屏页面进行A/B实验,用户刚刚打开APP,客户端就需要向用户展现开屏界面了。这种情况下客户端可能来不及向服务端请求配置参数。

三、操作演示

快速了解编程实验创建流程
 

四. 操作说明

在实验列表页点击“+创建实验”,选择编程实验,进入实验创建流程:

4.1 创建实验

4.1.1 输入基本信息

实验名称 :实验名称建议取与实验内容相关的名称,如有实验版本迭代可以增加版本号后缀,让你的伙伴能够快速了解到实验是做什么的、是在哪个迭代版本的。
实验描述 :实验内容简述,可以让项目相关人员更清晰地知道到这个实验是如何做的,解决什么问题,同时也便于后期查看和管理历史实验时一目了然。
实验类型 :客户端实验、服务端实验。
实验时长 :指实验开启的时间,一般为了避免工作日与周末的用户行为差异,至少观察 2 个完整周(14天)
实验标签:可以给实验打上自定义或者通用标签,用于筛选、归类实验。
实验负责人:默认为实验创建者。
 

4.1.2 设置生效策略

是否互斥:当前实验是否需要与其他实验互斥来避免同一个用户进入两个会相互影响的实验时可以选择手动创建。例如,你要同时做按钮颜色和按钮形状的实验,就需要将两个实验加入到一个互斥组列表。了解更多互斥组相关内容及如何创建互斥组可查看:互斥组
实验流量:生效实验的用户占满足用户受众用户比例。系统默认为100%流量,您可以通过建议工具(点击流量计算器)来看设置多少流量合适。详见:实验流量建议工具
用户受众规则:通过请求参数、用户分群等来圈选你的实验是面向哪些用户生效的。
体验一致性:保障同一个用户只进入一个实验版本。开启后,用户只要进过当前实验版本(除非暂停,关闭实验),就不再出实验。各实验版本流量权重变更后,历史进组用户不会受到影响,只会影响已分配但未进组的用户,以及未分配的用户。
 

4.1.3 配置实验版本

测试用户命中条件:测试用户的命中逻辑是否忽略发布受众的过滤条件,默认为"无需满足"。
是否关联Feature:选择关联后,可以将实验与 Feature 版本进行绑定,方便后续全量管理。
实验版本/对照版本选择:对照版本一般是当前的策略,实验版本一般是我们想要尝试的新策略,同时可以修改版本的名称。
实验配置参数:填写在调用AB时需要获取的实验配置参数,用来区分当前用户命中的不同的实验策略。
测试用户:创建实验后进行测试实验的用户ID列表。在实验正式开启之前,通常需要先选择几名用户进入测试阶段,观察实验是否能够正常获取想要收集的数据,或客户端是否有bug等。
添加实验版本:点击后可新增一个实验版本。
实验组流量比例分配:用户命中实验后,不同实验版本之间分配的流量比例。
 

4.1.4 实验指标

实验指标可以衡量实验成功与否,实验开始后,在实验报告页面可以看到关注指标在实验版本和对照版本的对比,在这一步,需要选择实验关注指标。
核心指标配置:用来决策实验功能是否符合预期的「直接效果指标」或「成功指标」。更多查看确定评估指标。
监控报警:可选择目标指标点击“监控报警”,填写具体需要的报警策略,选择是否勾选“效果显著”,以及选择报警策略的生效方式。
编辑指标:点击图例中3位置处可进入指标编辑页面,对可指标进行名称、指标类型、是否设为必看指标等进行编辑。
关注指标配置:对需要关注的指标进行配置。
移除指标:移除指标,则在实验报告看不到该指标的数据。
新建指标:可新建一个需要查看的指标。
置信水平:置信水平(也称置信度、置信系数、统计显著性),是指实验组与对照组之间存在真正性能差异的概率。例如在置信水平是95%的情况下,如果某个实验指标的置信度p值<0.05,则说明这个指标相比对照组,是有显著(超过置信水平)差异的。 如需设置置信水平参数值,则需联系集团管理员或应用管理员,前往“系统管理-置信水平设置”进行设置。
 

4.2 开启实验

实验调试完毕,在实验列表页点击“开始”,即可开启实验。实验开始后,进组用户可实时查看,指标置信度第二日产出。如下图:

一文读懂火山引擎A/B测试的实验类型(1)——编程实验的更多相关文章

  1. kubernetes基础——一文读懂k8s

    容器 容器与虚拟机对比图(左边为容器.右边为虚拟机)   容器技术是虚拟化技术的一种,以Docker为例,Docker利用Linux的LXC(LinuX Containers)技术.CGroup(Co ...

  2. 一文读懂MySQL的事务隔离级别及MVCC机制

    回顾前文: 一文学会MySQL的explain工具 一文读懂MySQL的索引结构及查询优化 (同时再次强调,这几篇关于MySQL的探究都是基于5.7版本,相关总结与结论不一定适用于其他版本) 就软件开 ...

  3. 一文读懂HTTP/2及HTTP/3特性

    摘要: 学习 HTTP/2 与 HTTP/3. 前言 HTTP/2 相比于 HTTP/1,可以说是大幅度提高了网页的性能,只需要升级到该协议就可以减少很多之前需要做的性能优化工作,当然兼容问题以及如何 ...

  4. 一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现

    一文读懂AI简史:当年各国烧钱许下的愿,有些至今仍未实现 导读:近日,马云.马化腾.李彦宏等互联网大佬纷纷亮相2018世界人工智能大会,并登台演讲.关于人工智能的现状与未来,他们提出了各自的观点,也引 ...

  5. 一文读懂高性能网络编程中的I/O模型

    1.前言 随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力.本文(和下篇<高性能网络编程(六):一文读懂高性能网络编程中的线程模型>)旨在为大家提供有用的 ...

  6. 从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路

    本文原作者阮一峰,作者博客:ruanyifeng.com. 1.引言 HTTP 协议是最重要的互联网基础协议之一,它从最初的仅为浏览网页的目的进化到现在,已经是短连接通信的事实工业标准,最新版本 HT ...

  7. 一文读懂 深度强化学习算法 A3C (Actor-Critic Algorithm)

    一文读懂 深度强化学习算法 A3C (Actor-Critic Algorithm) 2017-12-25  16:29:19   对于 A3C 算法感觉自己总是一知半解,现将其梳理一下,记录在此,也 ...

  8. [转帖]MerkleDAG全面解析 一文读懂什么是默克尔有向无环图

    MerkleDAG全面解析 一文读懂什么是默克尔有向无环图 2018-08-16 15:58区块链/技术 MerkleDAG作为IPFS的核心数据结构,它融合了Merkle Tree和DAG的优点,今 ...

  9. [转帖]一文读懂 HTTP/2

    一文读懂 HTTP/2 http://support.upyun.com/hc/kb/article/1048799/ 又小拍 • 发表于:2017年05月18日 15:34:45 • 更新于:201 ...

  10. [转帖]从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路

    从HTTP/0.9到HTTP/2:一文读懂HTTP协议的历史演变和设计思路   http://www.52im.net/thread-1709-1-2.html     本文原作者阮一峰,作者博客:r ...

随机推荐

  1. MySQL 高级(进阶) SQL 语句——其二

    MySQL 高级(进阶) SQL 语句 视图 ---- CREATE VIEW ----视图,可以被当作是虚拟表或存储查询. 视图跟表格的不同是,表格中有实际储存数据记录,而视图是建立在表格之上的一个 ...

  2. 微信小程序:音乐播放器

    音乐资源使用的是QQ音乐资源.图片资源使用的网易云音乐的专辑图片. HTML: <view class="container"> <div wx:for=&quo ...

  3. 用结构化思维解一切BUG(3):实际案例

    背景 本文是系列文章<用结构化思维解一切BUG>的第 3 篇,也是最高潮篇!本系列文章主要介绍一种「无需掌握技术细节,只需结构化思维和常识即可解一切BUG的方法」. 在前序文章<用结 ...

  4. 一个基于百度飞桨封装的.NET版本OCR工具类库 - PaddleOCRSharp

    前言 大家有使用过.NET开发过OCR工具吗?今天给大家推荐一个基于百度飞桨封装的.NET版本OCR工具类库:PaddleOCRSharp. OCR工具有什么用? OCR(Optical Charac ...

  5. 飞码LowCode前端技术之画布的设计

    简介 本章节从精准定位.分层设计.异步组件.拖拽四个方面分析飞码画布设计. 一.精准定位设计 飞码画布是一个套件,可对外提供画布能力.精准定位有两种情况,一是目标组件无子组件,而是目标组件有子组件. ...

  6. 渐进式web全栈:blazor web app

    前言 本文要说的这种开发模式,这种模式并不是只有blazor支持,js中有一样的方案next.js nuxt.js:blazor还有很多其它内容,本文近关注渐进式开发模式. 是的,前后端是主流,不过以 ...

  7. ORCAD BOM制作

    1.导出BOM增加/TPCB Footpint和/tOptionnal 选项 2.器件选焊的optionnal设置/X符号, 3.导出BOM后选择/X的,删除,不出现加工的BOM中

  8. 怎么理解 Bean、Controller、Service、Servicelmpl、Mapper

    主要是对java的各层级介绍.叫法可能不一样,但实现的逻辑都差不多,扔给我的代码中是四个层,分别是Bean层.Controller层.Service层.Servicelmpl层.Mapper层. Be ...

  9. [CF1849F] XOR Partition

    XOR Partition 题目描述 For a set of integers $ S $ , let's define its cost as the minimum value of $ x \ ...

  10. Google Guava提供的特殊的Table集合

    1.Table 是个啥? 是一个特殊的映射,其中两个键可以在组合的方式被指定为单个值.它类似于创建映射的映射. 当你想使用多个键做索引的时候,你可能会用类似 Map<rowKey, Map< ...