更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流

DataTester 是火山引擎数智平台旗下产品,能基于先进的底层算法,提供科学分流能力和智能的统计引擎,支持多种复杂的 A/B 实验类型。DataTester 深度耦合推荐、广告、搜索、UI、产品功能等多种业务场景需求,为业务增长、转化、产品迭代、策略优化、运营提效等各个环节提供科学的决策依据,让业务真正做到数据驱动。
DataTester 经过抖音、今日头条等字节业务多年验证,截至 2022 年 8 月,已在字节跳动内部累计完成 150 万次 A/B 实验。此外也已经服务了美的、得到、凯叔讲故事等在内多家标杆客户,将成熟的“数据驱动增长”经验赋能给各行业。

点击跳转火山引擎A/B测试DataTester官网了解详情

在创建一个 AB 实验前,通常需要完成以下的准备:

1. 明确实验类型:服务端实验 or 客户端实验

服务端 &客户端分别是什么,以及他们之间的关系是什么?

  • 在网络上提供服务的叫做服务器端(server) ,享受服务的叫做客户端(client)。

  • 服务端,是为客户端服务的,如向客户端提供资源,保存客户端数据。客户端,是指与服务器相对应,为客户提供本地服务的程序。

举个例子:

比如我们玩《王者荣耀》,手机上的《王者荣耀》APP 就是客户端,而我们所连接的《王者荣耀》服务器,就是服务端。

比如刷抖音的时候,我们自己手机上的抖音 APP 就是客户端,抖音自己的服务器就是服务端。我们所看的抖音视频并不是直接存储在手机客户端里的,而是我们在打开客户端后,客户端向服务端发出请求(request),告诉服务端:“用户现在要看视频了,快把视频拿来!”收到客户端的请求后,服务端将会进行回应(response),告诉客户端现在应该给用户展现哪一个视频。

什么是服务端实验 &客户端实验?如何选择实验类型?适用场景是什么?

  • 服务端实验,指通过服务端获取实验分组信息并控制配置生效或下发的实验。

    部分功能只能由服务端来控制,比如内容分发算法(如用户打开今日头条以后在 feed 流中会看见什么内容)、由服务端逻辑控制的产品功能(如推送)等。

    不要求唤起 APP 时就使实验配置生效。客户端有充分时间向服务端发起请求,获得实验配置后再向用户展示策略。

  • 客户端实验,指通过客户端获取实验分组信息并控制配置生效的实验。

    部分功能只能通过客户端控制,比如客户端的 UI 样式、交互功能设计等。

    APP 唤起时,配置即需生效。比如我们要针对 APP 的开屏页面进行 A/B 实验,用户刚刚打开 APP,客户端就需要向用户展现开屏界面了。这种情况下客户端可能来不及向服务端请求配置参数。

2. 制定实验方案

  • 提出问题:为什么我的注册页面转化率不够高?或者为什么我的推荐系统 点击/曝光 比率不理想?

  • 建立实验假设:让注册的按钮文案更又吸引力些?或者更换一套推荐模型?

  • 准备方案:不同的按钮文案,按钮的点击次数和页面进入的流量统计,或者不同的推荐模型,推荐内容点击和进入推荐页面的流量统计。

  • 验证这个假设:构建了一个不同的按钮文案作为实验组 B,与对照组 A 同时上线,展示给具有相同属性的两部分用户,并获得统计数据。

  • 分析数据得出初步结果:如果实验组 B 成功提高了转化率,那么这个假设得到了验证。否则,需要返回第二步来做出其他假设。

3. 了解实验指标

核心指标:实验主要关注的指标,每个实验只可设置一个核心指标。

  • 例如您的产品是电商产品,您可以将下列指标之一作为核心指标:购物车按钮点击率、购买转化率。

必看指标:每个实验都必须关注的指标,常用于进行功能改版时监控用户的体验。

  • 例如修改了按钮文案,按钮的点击率为核心指标,同时监测用户到访 PV 值等。对推荐模型进行实验,在主要核心指标为点击率时,也监测用户停留时长和跳出率等必看指标。

创建一个科学决策必备的A/B实验,都需要哪些准备?——火山引擎 DataTester 使用指南的更多相关文章

  1. 创建一个vue 项目 必备的几个插件

    第一步npm安装 首先:先从nodejs.org中下载nodejs 打开控制命令行程序(CMD),node -v 检查是否正常 使用淘宝NPM 镜像 npm  install  -g  cnpm  - ...

  2. Java网络编程Demo,使用TCP 实现简单群聊功能Groupchat,创建一个服务端,使多个客户端都能收到消息

    效果图: 开启服务端 客户端一 客户端二 客户端三 实现代码: 客户端类 import java.io.IOException; import java.net.ServerSocket; impor ...

  3. 实验六:分析Linux内核创建一个新进程的过程

    原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 题目自拟,内容围绕对Linu ...

  4. 创建一个支持异步操作的operation

    NSOperationQueue时iOS中常用的任务调度机制.在创建一个复杂任务的时候,我们通常都需要编写NSOperation的子类.在大部分情况下,重写main方法就可以满足要求.main方法执行 ...

  5. 如何创建一个基本JQuery的插件

    如何创建一个基本的插件 有时您希望在整个代码中提供一些功能.例如,也许你想要一个单一的方法,你可以调用一个jQuery选择,对选择执行一系列的操作.在这种情况下,您可能需要编写一个插件. 链接jQue ...

  6. 使用Cocos studio创建一个简单的project

    前不久我接到了一个项目,项目要求使用Cocos2d-X的最新版本号,Cocos2d-X3.4.对于一直在陶醉在Cocos2d-X2.2.3的世界中的我开说,使用Cocos2d-X3.4忽然认为有点不适 ...

  7. 利用django创建一个投票网站(五)

    创建你的第一个 Django 项目, 第五部分 这一篇从第四部分(en)结尾的地方继续讲起.我们在前几章成功的构建了一个在线投票应用,在这一部分里我们将其创建一些自动化测试. 自动化测试简介 自动化测 ...

  8. 2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API

    Web API 2 支持一种新型的路由,称为属性路由.属性路由的一般概述,请参阅属性路由 Web API 2 中.在本教程中,您将使用属性路由创建一个 REST API 集合的书.API 将支持以下操 ...

  9. 【译】采用MVC模式创建一个简单的javascript App

    原文标题:Build A Simple Javascript App The MVC Way 作者:joshcrawmer4 翻译人:huansky 初次翻译,翻译的不好,还请见谅 JavaScrip ...

  10. python web编程 创建一个web服务器

    这里就介绍几个底层的用于创建web服务器的模块,其中最为主要的就是BaseHTTPServer,很多框架和web服务器就是在他们的基础上创建的 基础知识 要建立一个Web 服务,一个基本的服务器和一个 ...

随机推荐

  1. 喜闻乐见最新的ORM查询BUG,看看有没你关注的

    起因,想测试下查询语句的生成,按以下逻辑代码示例 var query = rep.GetLambdaQuery().Take(100); var join = query.Select(b => ...

  2. 聊聊Flink必知必会(五)

    聊聊Flink的必知必会(三) 聊聊Flink必知必会(四) 从源码中,根据关键的代码,梳理一下Flink中的时间与窗口实现逻辑. WindowedStream 对数据流执行keyBy()操作后,再调 ...

  3. LabVIEW基于机器视觉的实验室设备管理系统(4)

    目录 行动计划 后面板连线 初始化 ​返回 ​ 注册 账号限制 查重账号或者姓名 确认密码 注册 效果演示 我们上一期制作完了给账户修改密码,那么我们这一期就来完成账户注册这一功能.老规矩哦,先来计划 ...

  4. HTML5实战—canvas绘图之贝塞尔曲线

    1.二次贝塞尔曲线 quadraticCurveTo(cpx,cpy,x,y) //cpx,cpy表示控制点的坐标, x,y表示终点坐标: 数学公式表示如下: 二次方贝兹曲线的路径由给定点P0.P1. ...

  5. 小白必知:AIGC 和 ChatGPT 的区别

    原文 : https://openaigptguide.com/chatgpt-aigc-difference/ AIGC 和 ChatGPT 都是人工智能技术,但它们的功能和应用场景不同. AIGC ...

  6. BI软件是什么?应用BI工具能给企业带来什么

    BI软件是指利用数据挖掘.分析和可视化等技术,将企业内部和外部数据转化为有价值的信息和洞察,以帮助企业支持业务决策和优化业务流程的工具和应用程序.常见的BI软件包括Datainside.QlikVie ...

  7. 关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)

    当在Git中有多个开发者在同一个分支上工作时,可能会发生分支冲突.分支冲突指的是多个开发者在同一时间修改相同的代码文件,导致Git无法自动合并这些更改. 比如说:我在github上进行了md文件的修改 ...

  8. Feign远程调用超时问题

    1.问题概述 上图的场景,每次重启项目后openFeign都会报一个超时异常,异常信息如下 2.为什么会产生这个异常? 当项目刚启动时,数据库连接池的中的连接并不会创建;第一次请求的时候才会初始化各种 ...

  9. DRF限流

    https://www.django-rest-framework.org/api-guide/throttling/ 限制.控制客户端可以向 API 发出的请求的速率. 设置限流策略 默认限制策略可 ...

  10. C++ Qt开发:Charts绘图组件概述

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QCharts ...