随着国内游戏用户数量趋于饱和,中国游戏产业也从高速成长期逐渐转型,市场成熟度提升,竞争趋于精细化。

随着游戏出海以及私域流量运营的挑战,游戏企业对数据分析的使用需求和依赖度进一步提高。而在游戏研发立项、验证、开发、测试、上线和运营等阶段 A/B 测试均能发挥重要作用。

本文讲述一个通过 A/B 测试获得“数据驱动增长”能力的游戏产品故事。并介绍在游戏的研发推广的全流程中,A/B 测试都能应用于哪些场景。

快速试错,A/B 测试打磨爆款游戏

游戏行业发展至今,先后经历了主机游戏时代、网页游戏时代、移动游戏时代等多个阶段,如今移动游戏收入占国内游戏收入的 7 成以上,许多传统游戏公司正面临着转型压力。而随着游戏技术的日趋成熟,大批新兴公司涌入该行业,进一步加剧了竞争压力。

游戏研发流程大致分为立项、验证、开发、测试、上线准备和运营六个阶段,每个阶段往往都伴随着许多修改。

修改的效果如何?对于核心指标是否会有负面的影响?传统的思路,是将新特性上线后验证效果,但这也往往存在上线周期长,过分依赖经验,影响面广等问题。

A/B 测试能够完美地解决上述痛点。它通过在线上流量中取出一小部分,完全随机地分给原策略 A(对照组)和新策略 B(实验组),再结合科学的统计方法 ,得到对于两种策略相对效果的准确估计。

A/B 测试使用线上小流量即可验证效果,并能够有效地衡量不同策略的收益。

"全民弹弹弹"的 A/B 测试故事

在发行时曾荣获“年度最佳休闲游戏”大奖的《全民弹弹弹》,是超休闲游戏类的爆款产品代表。它是一款操作简单、极易上手的球跳塔类休闲游戏,玩家既可以让弹球一层一层地击穿彩色砖块,享受纯粹的弹射快感,也可以解锁更多未知的球球,体验合成的养成乐趣。

在这款游戏研发和推广过程中,借鉴了字节跳动的增长经验,接入了字节自研出品的 A/B 测试产品——火山引擎 DataTester,对游戏的多个环节进行了 A/B 测试。

在《全民弹弹弹》的游戏运营环节,为验证游戏首页对玩家留存和广告数据的影响,设计了两款首页方案通过 A/B 测试进行玩家留存数据的对比:跳塔页(左图)、合成页面(右图)。

经过在 DataTester 中运行 2 周的实验测试,结果显示,首页为合成页(右图)的页面在用户 3 日留存、用户 7 日留存以及广告效果等核心指标中,均明显优于对照组跳塔页(左图)的方案。

在 A/B 测试的数据结果支撑下,《全民弹弹弹》最终全量上线了合成页面的方案,并取得了优异的效果。

一款游戏从研发到打磨,再到上线后的不断调优,全链路均可通过 A/B 测试提升效率和决策准确度。除上述场景外,DataTester 还能在游戏产品中,应用于以下场景:

1.验证新手引导改动,新手任务难度调整,初始资源调整等

2.验证关卡难度、装备爆率、宝箱中奖率调整等影响游戏体验的的改动

3.验证商城界面,积分系统,公告栏、banner、按钮、图标等功能性区域的改动

4.验证匹配系统、好友系统、聊天系统等社交性功能改动

5.验证游戏 IP、NPC、游戏场景、剧情的改动

实验分层,可无限拓展实验流量

在游戏内测阶段,常常会遇到需要多个 A/B 测试并行的场景:

小 A 要验证新的武器系统,需要 50%的流量验证;小 B 修改商城界面,也需要 50%的流量;小 C 对新手任务进行了完善,同样需要 50%的流量验证。此时同时进行 3 个实验,需要 150%的流量。

线上流量不够用,只能对实验进行优先级排序,让几个实验先后进行,但这会导致效率低下。

火山引擎 A/B 测试 DataTester 流量分层技术,将总体流量复制“无数遍”,形成”无数个”流量层。流量层两两之间相互正交,再加之运行在相同层的实验流量互斥,从而保证同时运行多个实验不会互相干扰。

实验分层技术可以有效的解决线上流量不足的情况,尤其是在游戏内测阶段,这个阶段往往获取用户难度较大。需要通过发布内测任务,小规模买量等方式获得游戏玩家,流量获取成本高。

而这个阶段既需要验证游戏的性能、兼容性,又要对游戏的玩法、关卡设置、故事剧情、营收模型等进行调整。

如果内测时间过长,不仅需要持续的买量投入,也会导致游戏上线节奏被拖慢,甚至可能错过市场热点。通过 DataTester 实验流量分层技术,打破流量限制,大大缩短游戏验证时间,快速上线迭代。

3 大实验场景,提高游戏推广效率

除了传统的客户端、服务端 A/B 测试以外,火山引擎 DataTester 还设有 3 大针对特殊场景的 A/B 测试能力,可以大幅提升游戏在广告投放、信息推送等场景下的效率。

  • 推送实验:通过对推送通知的标题、内容、点击动作等进行测试,找出效果最优的方案。

DataTester 支持多种推送通道、设备类型;可应用于游戏的拉新、召回以及活动推广等场景,及时响应效果,避免负面影响。

  • 广告实验:提升广告投放 ROI,可对比不同的实验文案、不同的投放渠道的广告投放效果。

DataTester 可以通过转化增效度量的方式来控制“自然转化”对实验效果的影响,保证广告实验的科学性和严谨性。

  • 可视化实验:DataTester 可以达成所见即所得的 A/B 测试配置,新手小白也能直接上手使用。

通过所见即所得的在线编辑,降低在 Web/H5 页面优化的场景下,产品方和运营方使用 A/B 测试工具的成本。可用于游戏活动的推广页面,抽奖页面的效果对比,无需编程即可快速上线。

上述能力均来自于字节跳动在多年业务打磨中,完成过 150 万余次 A/B 测试的经验积累,因此产品在实用性和易用性方面能力极强。

出海游戏,DataTester 保驾护航

如今全球化运营已经成为新的趋势,海外游戏营收相较于国内有着更高的增长性。国内自研游戏纷纷出海,快速抢占重点地区份额。与此同时也带来了差异化运营、全球化发布、信息安全等全新的挑战。

  • 地区差异化运营

由于各国文化、宗教信仰、潮流趋势的差异,相同的游戏活动和修改,在海外不同的地区往往取得的收益各不相同。对于公司来说,海外不同地区的差异化运营,往往需要积累各地的运营经验,成本通常较高。

盲目的推行,又容易导致一些负面的影响。DataTester 的 A/B 测试支持圈选不同地区的游戏用户,可以针对不同地区的用户开展针对性的测试,能够快速的比较实验结果,确定该地区的最优方案。

  • 全球化发布

全球化发布也是公司在出海过程中所不得不面临的挑战。全球化发布意味着运维成本的提高,同时多版本的管理也增加了发行的复杂性。

DataTester 运行中的 A/B 实验,支持直接转换为特性进行发布。同时支持渐进式发布、定时发布,以及回滚操作等。通过使用特性发布功能,使发布流程更加简洁,减少发布风险。

产品介绍

DataTester 是火山引擎数智平台旗下产品,经过抖音、今日头条等字节业务多年验证,累计开设过 150 万次 A/B 测试,可基于先进的底层算法,提供科学分流能力和智能的统计引擎,支持多种复杂的 A/B 测试类型。

在应用和分析场景上,DataTester 深度耦合推荐、广告、搜索、UI、产品功能等多种业务场景需求,为业务增长、转化、产品迭代,策略优化,运营提效等各个环节提供科学的决策依据,让业务真正做到数据驱动。

目前,DataTester 已在外部多家企业上线应用,将成熟的“数据驱动增长”经验赋能给游戏、汽车、大消费、金融等多个领域。

申请 DataTester 免费试用、了解更多 DataTester 详情,请点击火山引擎A/B测试DataTester官网

火山引擎DataTester:一个爆款游戏产品,是如何用A/B测试打磨出来的?的更多相关文章

  1. 引爆公式让你的APP游戏成为下一个“爆款”

    在2014年的移动互联网领域,“魔漫相机”是一款值得关注的产品.虽然没有腾讯.百度或阿里巴巴等大资源的支持,但是这款应用一上线就在中国市场发展迅猛,日下载量超过80万次,最高一日达300万次.类似的成 ...

  2. 火山引擎 DataTester:让企业“无代码”也能用起来的 A/B 实验平台

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 当数字化变革方兴未艾,无代码正受到前所未有的关注.Salesforce 的数据显示,52%的 IT 部门表示,公司 ...

  3. 5 天 4000 star 的一个爆款开源项目

    今天早上起来浏览 GitHub 的时候,在周热门趋势排行榜上看到了这么一个开源项目,仅仅 5 天时间,爬到了周排行榜的第一名的位置.而在每天的排行榜上,今天一早也高高位居排行榜的第二位. 这个开源项目 ...

  4. 还原火山引擎 A/B 测试产品——DataTester 私有化部署实践经验

      作为一款面向ToB市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路.   在面向ToB客户私有化的实际落地中,火 ...

  5. AI:用软件逻辑做硬件爆款

    "我们的野心不止那么一点点." 百度集团副总裁.百度智能生活事业群组(SLG)总经理.小度CEO景鲲曾多次对外表达过这样的观点. 在2021年百度世界大会上,小度又一口气发布了四款 ...

  6. 火山引擎 A/B 测试产品——DataTester 私有化架构分享

    作为一款面向 ToB 市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路. 在面向 ToB 客户私有化的实际落地中,火 ...

  7. 使用游戏引擎photon打造一款特殊的远程控制软件

    前言 本文主要是介绍photon引擎的一些基本用法,以及使用游戏引擎开发远控的优势 0x1 有一段时候对做游戏的unity开发有些兴趣,在找游戏服务端引擎的时候,突然发现了这款歪果人开发的游戏引擎ph ...

  8. 爆款AR游戏如何打造?网易杨鹏以《悠梦》为例详解前沿技术

    本文来自网易云社区. 7月31日,2018云创大会游戏论坛在杭州国际博览中心103B圆满举行.本场游戏论坛聚焦探讨了可能对游戏行业发展有重大推动的新技术.新实践,如AR.区块链.安全.大数据等. 网易 ...

  9. 火山引擎MARS-APM Plus x 飞书 |降低线上OOM,提高App性能稳定性

    通过使用火山引擎MARS-APM Plus的memory graph功能,飞书研发团队有效分析定位问题线上case多达30例,线上OOM率降低到了0.8‰,降幅达到60%.大幅提升了用户体验,为飞书的 ...

  10. JuiceFS 在火山引擎边缘计算的应用实践

    火山引擎边缘云是以云计算基础技术和边缘异构算力结合网络为基础,构建在边缘大规模基础设施之上的云计算服务,形成以边缘位置的计算.网络.存储.安全.智能为核心能力的新一代分布式云计算解决方案. 01- 边 ...

随机推荐

  1. [C++]vector的基本的用法

    [vector/容器/向量/动态数组]的基本的用法 容器的定义 向量/容器(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container). 跟任意其它类型容器一样,它能够存 ...

  2. Welcome to YARP - 4.限流 (Rate Limiting)

    目录 Welcome to YARP - 1.认识YARP并搭建反向代理服务 Welcome to YARP - 2.配置功能 2.1 - 配置文件(Configuration Files) 2.2 ...

  3. STM32CUBEIDE中 Debug 和 Release 的作用/区别/使用场景

    基本主流IDE都有该功能选项例如Keil MDK, IAR, Eclipse, VS等, 这里使用STM32CUBEIDE来举例 创建STM32CUBEIDE工程后默认有2个目标选项 Debug / ...

  4. baby_web

    点开页面获得提示 根据提示,访问index.php,但是会自己跳转到1.php 这时候抓包修改才ok才能定位到index.php

  5. 【主流技术】详解 Spring Boot 2.7.x 集成 ElasticSearch7.x 全过程(二)

    目录 前言 一.添加依赖 二. yml 配置 三.注入依赖 四.CRUD 常用 API ES 实体类 documents 操作 常见条件查询(重点) 分页查询 排序 构造查询 测试调用 五.文章小结 ...

  6. Python+Yolov8+ONNX实时缺陷目标检测

    相比于上一篇Windows10+Python+Yolov8+ONNX图片缺陷识别,并在原图中标记缺陷,有onnx模型则无需配置,无需训练. 优化了程序逻辑,降低了程序运行时间,增加了实时检测功能 目录 ...

  7. 2023-11-25:用go语言,给定一个数组arr,长度为n,表示n个格子的分数,并且这些格子首尾相连, 孩子不能选相邻的格子,不能回头选,不能选超过一圈, 但是孩子可以决定从任何位置开始选,也可以

    2023-11-25:用go语言,给定一个数组arr,长度为n,表示n个格子的分数,并且这些格子首尾相连, 孩子不能选相邻的格子,不能回头选,不能选超过一圈, 但是孩子可以决定从任何位置开始选,也可以 ...

  8. 关于fstream对象的open方法报错183的问题

    当使用fstream,ifstream,ofstream,这几种对象打开文件, 但文件已经存在的时候, 调用GetLastError()函数,会返回错误代码183, 这个代码代表该文件已经存在,是正常 ...

  9. [ABC328D] Take ABC 题解

    题目翻译 题目描述 给你一个字符串 \(S\) 包含 A.B 和 C 三个不用的字符. 只要字符串 \(S\) 中包含连续的 ABC 就将 ABC 删除掉 再字符串 \(S\) 不能操作之后输出这个字 ...

  10. [AGC59C] Guessing Permutation for as Long as Possible

    Problem Statement A teacher has a hidden permutation $P=(P_1,P_2,\ldots,P_N)$ of $(1,2,\cdots,N)$. Y ...