更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【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. APP攻防--安卓逆向&数据修改&逻辑修改&视图修改

    APP攻防--安卓逆向&数据修改&逻辑修改&视图修改 @ 目录 APP攻防--安卓逆向&数据修改&逻辑修改&视图修改 工具集 apk目录意义 逆向数据修 ...

  2. CSS 元素居中方式总结

    作者:WangMin 格言:努力做好自己喜欢的每一件事 在开发过程中,很多网页需求要求我们居中一个div,比如html文档流当中的一块div,比如弹出层内容部分这种脱离了文档流等.不同的情况有不同的居 ...

  3. 用原型实现Class的各项语法

    本人之前对Class一直不够重视.平时对原型的使用,也仅限于在构造函数的prototype上挂属性.原型尚且用不着,更何况你Class只是原型的一颗语法糖? 直到公司开始了一个webgis项目,使用o ...

  4. 企业微信获取code

    String url="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+AuthUtil.APPID   + ...

  5. GitHub Actions 入门指南

    前言 GitHub Actions 可以构建一组自动化的工作流程,并提供了拉取请求.合并分支等事件来触发他们.一般成熟的开源项目会在每个版本发布时提供 releases ,它就是通过 Actions ...

  6. 手撕Vue-Router-知识储备

    前言 本文是手写Vue-Router的第一篇,主要是对Vue-Router的知识储备,为后面的手写做准备. 那么 VueRouter 怎么实现呢?要想实现 VueRouter,首先要知道 VueRou ...

  7. iframe嵌入报表滚动条问题

    当在iframe中嵌入报表时,可能会遇到滚动条的问题.下面是一个详细的介绍 1. 了解iframe: - iframe是HTML中的元素,用于在当前页面中嵌入另一个页面. - 嵌入报表时常使用ifra ...

  8. Vue源码学习(十八):实现组件注册(一)Vue.component()和Vue.extend()

    好家伙, 0.完整代码已开源 https://github.com/Fattiger4399/analytic-vue.git 1.思路 1.1.什么是组件化? Vue 组件化是指将复杂的应用程序拆分 ...

  9. Reactor实战,创建一个简单的单线程Reactor(理解了就相当于理解了多线程的Reactor)

    单线程Reactor package org.example.utils.echo.single; import java.io.IOException; import java.net.InetSo ...

  10. 踩坑:nacos启动报错提示需要设置JDK环境 ,报错:ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! !!

    换了个Windows11的新电脑,因为个人工作.学习需要,就重新下载了Nacos并解压使用,结果就踩了个坑,使用下面命令启动Nacos服务端时: startup.cmd -m standalone 直 ...