游戏数据分析的艺术
上QQ阅读APP看书,第一时间看更新

1.3 游戏数据分析的流程

游戏数据分析整体的流程分为几个阶段,这几个阶段反映了不同企业数据分析的水平。从另一个角度看,也是在解释作为一名数据分析人员究竟该如何参与到游戏数据分析业务中,与之有关的游戏数据分析师的工作我们将在1.4节重点阐述。

如图1-2所示,对于游戏数据分析系统及数据的利用,分为了5个阶段:方法论、数据加工、统计分析、提炼演绎和建议方案,从工程技术、统计分析、数据挖掘以及用户营销几个方面进行了覆盖和研究。

图1-2 游戏数据分析流程

1.3.1 方法论

方法论是数据分析的灵魂,是解决问题的普遍原则,是贯穿分析始终的思想指导。这个阶段决定了我们如何进行数据埋点(如何在业务的关键点上进行数据的采集和监控),如何设计分析指标,如何采集,如何组织数据。

方法论多数是将业务进行抽象,形成了一套可以解决若干业务问题的思路。就游戏业务来说,从游戏数据分析角度,目前已经存在几套方法论,比如早期游戏市场提及的是PRARA,在进入移动游戏领域,以TalkingData的AARRR模型被提及得最多,这套方法论综合了PRARA、网站分析和社交网络分析等诸多分析的特色,结合移动游戏市场的情况,加以整理并提出。在后续的章节中,我们会重点介绍AARRR模型。

方法论存在的意义就是去解决问题,是对于问题、目标、方法和工具的概述。一方面解决业务问题,另一方面则是分析思维的指导。在后续有关游戏数据分析师的描述中,我们强调对分析思想的锻炼及对分析方法的驾驭,学会基于不同角度和领域去看待业务问题,这需要高度的抽象和概括能力。从图1-2我们也可以看到,方法论的确立,决定了我们在游戏数据分析方向上要解决的问题、采取的方法和使用的工具等。

当缺少这样的体系支撑时,即使我们确立目标,在实践操作时也会变得非常缓慢,效率低下。因为在整个过程中,我们要完成游戏数据分析的工作,需要开发人员、设计人员和运营人员的参与,如果没有统一的思想和方法的指导,大家就无法进行有效的任务分配和需求理解,进而导致今天我们看到这种现象:在很多的游戏公司里,运营人员与开发人员在沟通时会频频出现各种数据标准理解的不统一,分析功能开发得南辕北辙。这些问题的出现不仅仅是沟通的问题,更是对于游戏数据分析的体系和思想未形成一致的认识造成的。在方法论的阶段有如下的两点是需要重点关注和解决的。

(1)业务需求

方法论是对业务需求的最高层级的抽象,涉及具体业务时,在方法论的指导下,我们需要对业务需求进行拆解,而这个阶段,从数据分析的角度来看,就是该如何进行数据埋点。

数据埋点就是通过客户端或者服务端,在某些游戏位置追踪玩家游戏行为而得到的相关数据。这些位置则是未来对特定业务分析的基础数据支撑。例如,在进行用户注册分析时,我们需要在用户注册的相关代码和逻辑位置进行数据采集点的设计,这样,当游戏有玩家参与时,就可以通过采集到的数据,进行整理,形成可计算的指标。

经过长期的发展,已经形成了一些特定的数据指标,而这些指标也可以涵盖大部分的业务数据分析。多数时候,我们常常会苦恼于如何进行数据埋点,如何进行基础的数据分析,实际上,我们通过一些行业通用的数据指标白皮书就可以在短时间内明确该如何进行数据埋点和基础数据统计分析,这方面可以参考TalkingData在2012年发布的《移动游戏运营数据指标白皮书》。

(2)指标体系

当我们形成了基本的数据指标后,我们要形成完整的指标体系,并且要建立在方法论的指导基础之上。在多数情况下,指标具有很强的业务导向性和监测作用。例如,我们在进行数据日报的制作过程中,就需要按照一定的逻辑组织,用户类数据、收益类数据、渠道数据等。同时,在这些指标基础之上,数据分析人员可根据需要,进一步加工和变换指标,从而完成深度分析。例如,我们对于新增付费用户的研究,用户生命周期价值的探讨等,就需要在基础数据的指引下,进一步建立新的数据规划和指标拆解。

这部分指标工作看似是最基础的部分,但是它是最重要的。理清了业务需求,我们需要基于目标驱动构建指标体系,在类似AARRR模型的指导下,整体构建并不会有太多的特殊性,但重要的一点是,所构建的指标体系需要能够和业务匹配,比如根据业务需要,重点予以关注的指标数据,或者关键业务的评估需要微型的指标体系来实施。这一类是在方法论指导原则下完成的。

在指标体系中,指标重在理解和标准化。如果在构建指标体系阶段,定义的指标标准不够清晰,那么在具体的开发实施阶段,就会产生很多问题,最终造成类似统计数据不准确等问题。此外,在此阶段定义的指标不是越多越好,所以要加深对于指标的深入理解,借助数据分析来解决问题,而不是罗列数据。在构建的指标体系内,每一个指标都具备实际的分析价值,能够反映特定的问题,并且当问题得以解决时,我们还可以从该指标或者几个指标的组合中评估效果。

1.3.2 数据加工

对数据进行处理使其最终变成信息,这个阶段统称为数据加工,具体要经历如图1-3所示的流程。

在数据加工阶段,我们重点要去解决的问题有两个。

图1-3 游戏数据加工流程

(1)业务理解

系统最终是需要技术开发的,在选定技术和工具之前,最重要的是要充分理解需求和标准定义。在开发人员完成开发后,如果发现其数据处理的结果并非是分析师或业务人员所需要的,那么就浪费了很多的时间和资源,因此是否形成一致的指标定义认识,是否明确统一需求,需要分析师、业务人员与开发团队共同商议,形成统一的认识,否则将面临重复开发,需求更改等一系列的问题。在所有人员对这些问题达成一致后,接下来要解决的是技术开发问题。

(2)技术开发

确立使用什么技术和架构来完成整体的数据分析平台的建设,这需要技术人员去评估,而评估的一个重要参考就是前一个阶段所确立的内容,技术人员对于业务分析需要的理解,决定了未来构建的数据平台的很多因素,例如高安全性、高效性、高可靠性、高可用性、高可扩展性和可管理性等。

在数据采集层级,需要解决数据的发送机制、采集内容和存储方式等。就目前的移动互联网游戏来说,主要采取在游戏客户端植入统计分析SDK的方式来完成数据的采集。当然,在部分公司中,也采取了在游戏服务器端完成数据的采集。两种方式各有优势,通过SDK植入游戏客户端的采集方式,在有关游戏用户终端设备的信息、用户会话时间等方面具备优势;而通过服务器端的数据采集,则在游戏内诸如等级分析、关卡任务分析方面具备优势,但是对游戏用户在客户端设备上一些行为则无法做到采集和分析。例如,如图1-4所示,在移动游戏客户端的错误日志中,多数情况下通过服务器端无法获得宝贵的数据。

而这些数据,经过采集后,可以快速了解目前产品的问题,如新增用户很多,但是活跃时间和留存质量很低,分析错误日志则是一个很好的方式。这一点在移动游戏数据分析方面是非常必要的,因为移动游戏环境和场景的多样性,使得我们必须重视解决看似很小的问题。

在数据处理层级,要对采集到的原始数据进行抽取、清洗和加载,对杂乱的数据进行标准化、映射、排重以及纠错等操作,最终将数据加载到数据仓库中。在这个阶段要完成的工作量是非常庞大的,尤其是在移动游戏领域。当用户终端的设备变得更加多样、地域更加分散后,数据的处理工作相比之前的端游和页游,变得更加的重要,依赖程度更高。移动游戏需要更加快速的响应和迭代能力,当我们通过数据发现了游戏在某些设备上存在问题时就要迅速地进行解决,而此时,我们的关键任务是如何发现这些问题并进行分析。如图1-5所示,我们需要依托设备的标准化和纠错去发现不同用户群的设备分布情况。在同样情况下,也可以分析比如付费用户更加倾向哪些分辨率的手机,或者使用iPhone5的付费用户的ARPPU是多少,这些分析都要依托于强大的数据处理能力。

图1-4 游戏客户端错误日志

图1-5 游戏设备排行信息

在数据计算层级,要进行实时的运算,定义多维数据模型、业务模型(比如基于时间维度、地域维度、用户群维度、区服维度和渠道维度等),按照小时、日计算任务,根据业务要求进行数据运算,并把结果集数据输入到数据库中。

在业务信息层级,需要将经过采集、处理并计算的数据最后经过接口变成可被查询的信息。如果从开发层面解释,就是庞大的报表系统,即直接面向最终分析师的数据产品。

实际上,数据加工阶段的最终目的就是将数据转化为可用的信息。从这点来看,第3阶段的统计分析则与业务信息阶段结合得非常紧密,统计分析要基于已经加工好的数据,进一步深入地透过更加多元的数据或者信息分析方法,挖掘特征。

1.3.3 统计分析

统计分析包含了统计和分析。统计分析是商业智能的一个方面,商业智能应用还包括决策支持系统(DSS)、查询和报告、在线分析处理(OLAP)、预测和数据挖掘,统计分析是整理数据和分析数据的综合。

此前我们需要收集数据,但是目的都是整理数据且最终要进行数据分析,并进行数据向信息转化的过程。为此,需要描述数据的性质和研究数据关系,并通过一定的模型来变换角度解析数据内在的联系。如果整体系统的开发度更高,则可以对模型本身进行有效性的验证。在部分公司提供的统计分析系统上,我们已经能够看到部分的预测分析,这也是向下个阶段提炼演绎的重要过渡。

对于游戏数据分析师来说,需要学习更多的统计的思想、方法和解题思路。统计分析的关键就是要分析数据,因为对于经过整理和加工的数据,如何提炼有用的决策信息,一方面依托于系统的数据采集和整理,另一方面则需要分析师最终进行分析才会发挥价值。分析师的最大要求就是理解每一个方法背后的原则、范围和思想。统计学的思维将我们对事物的解读能力提升到了一个更高的层次。

在进行一些游戏数据分析时经常使用集中趋势或者离散程度的指标,这些指标所代表的不只是一个计算方式,更重要的是在最初诞生时,就是为了解决某一类问题而设计的解决办法,这是我们在基于计算方法下分析数据所最需要关心的事情。例如,在描述统计分析中,我们经常使用集中趋势,它反映的是一组数据所具有的共同趋势。

统计分析对分析师来说是非常重要的考验,尤其是基本的分析能力。当然,作为一名分析师,只在挖掘数据特征和分析数据方面具备能力还不足以证明分析师的价值,数据分析本身是辅助决策的,因此,能够挖掘提炼和演绎,与业务有效地结合,形成结论是非常重要的。所有的分析师不是为了分析数据而分析数据、崇尚数据、信仰数据,但不要盲目分析。

1.3.4 提炼演绎

事实上,每一次数据分析都要经过长期的准备和努力,有文章指出,在整个数据分析环节中有80%以上的时间是在整理数据,所以如何有效地形成方法和经验就变得更加重要。

可以预见的是,当由系统来实现数据分析时,我们需要对关键业务具备数据的归纳和业务分析的模型组织的能力。例如,在游戏数据分析中,我们会针对鲸鱼做分析,对留存做专门的分析。这些都是通过业务的提炼得以实现的。

在很多情况下,经过积累,需要将一些重要业务和分析进行归纳,总结出可以长期使用的分析模块和数据采集体系,这样,当我们面临新游戏需要数据统计分析时,则不需要更多的额外开发成本。

以移动游戏统计分析为例,在经过不断地业务提炼和模型演绎后,从分析角度来看,我们最关心的几个模块如图1-6所示。

图1-6 游戏数据分析模块

以上是经过不断的提炼总结出来的一些重要分析模块,基于这些模块,我们需要记录和完成数据的采集,并且在参数设计上形成可以复用的接口。在移动游戏市场,服务于第三方游戏统计分析服务的平台提供了标准的数据接口,从数据采集的角度,可以确立如图1-7所示的标准统计接口。

图1-7 游戏数据采集标准接口设计

下面,以TalkingData Game Analytics在iOS平台的数据统计接口设计的为例,描述具体的设计方法,其中涉及的标准接口有6个。

(1)游戏启动和关闭

用于准确追踪用户的游戏次数、游戏时长和初始渠道等信息。

//游戏初始化
TDCCTalkingDataGA::onStart("APP_ID", "CHANNEL_ID");

(2)统计用户账户

用于定义一个玩家,更新玩家最新属性信息:

//返回用户对象
TDCCAccount* setAccount(const char* accountId)
//设置账户类型
static void setAccountType (TDCCAccountType accountType)
//设置账户的姓名
static void setAccountName(const char* accountName)
//设置级别
static void setLevel (int level)
//设置性别
static void setGender (TDCCGender gender)
//设置年龄
static void setAge (int age)
//设置区服
static void 区服:setGameServer(const char* gameServer)

(3)跟踪用户充值

跟踪玩家充值现金而获得虚拟币的行为,充入现金反映至游戏收入中。

//充值请求
static void onChargeRequest(const char* orderId, const char* iapId, double currencyAmount, const char* currencyType, double virtualCurrencyAmount, const char*paymentType)
//充值成功
static void OnChargeSuccess (const char* orderId)

(4)跟踪用户消费点

跟踪游戏中全部使用的虚拟币的消费点,如购买道具、VIP服务等。

//记录付费点
static void onPurchase(const char* item, int itemNumber, double priceInVirtualCurrency)
//消耗物品或服务等
static void onUse(const char* item, int itemNumber)

(5)任务关卡或副本

跟踪玩家任务、关卡和副本情况。

// 接受或者进入
static void onBegin(const char* missionId)
// 完成
static void onCompleted(const char* missionId)
//失败
static void onFailed(const char* missionId, const char* cause)

(6)任务自定义事件

跟踪和统计任何期望分析的数据,如功能按钮的单击、填写输入框、广告点击触发情况等。

static void onEvent(const char* eventId, EventParamMap* map = NULL);

以上是从数据采集和具体分析两个角度阐述了提炼演绎的重要性,作为分析师,其提炼演绎的能力不仅仅是完成分析,还在于优化和完善分析系统的结构和设计。这个阶段的业务模型和分析师见解,一方面影响了下一步的方案形成和指导决策,另一方面,也决定了其提供的经验在后续的产品运营过程中是否可以作为可持续使用的方法。

在西内启所著的《看穿一切数字的统计学》中有一句话:

“实际上分析结果本身并没有价值,如何活用分析结果,最终得到的价值也是不同的。”

价值的挖掘还体现在最终的建议和方案上,因为最终数据分析要以解决问题为先,建议方案则是最终诉求。

1.3.5 建议方案

前面几个过程是从数据平台、标准分析系统、产品运营和精细化几个方面来描绘游戏数据分析的流程,而数据分析最终是要形成方案或者决策指导的,因为分析结果体现不了价值,最终还是要和业务结合,真正体现价值的是如何运用结果。

建议方案就是解决如何有效利用分析结果的方案。在很多情况下,你会发现最能够体现利用分析结果的就在获取用户和经营用户两个方面。在获取用户方面,需要对那些还不是我们用户的用户进行转化,到达特定的用户群,即那批我们真正想要转化的人,而如何选择受众、选择媒体,需要充分利用分析结果。对于广告主来说,永远希望投放效果最大化,对于媒体来说,则是收益效果最大化。为此,最近几年我们看到了诸如DSP、DMP、SSP和RTB等概念的出现,一定程度上就是利用不断丰富的数据和分析结果,不断优化我们在广告方面的投放,不得不说,这印证了西内启的那一句话。

从经营用户的目的来看,因为每一个用户的获取都需要成本,在产品有限的生命周期内,期望每一个获取的用户生命周期也足够长久,如此可以获取更多的价值。而这一点,在游戏领域也被逐渐利用起来。

在以往的游戏数据分析领域,我们会发现,经过数据分析后,一旦形成方案,很难将这个方案执行下去,并且无法评估最终的效果。因为在整个数据分析环节中,参与的不同部门的人员众多,数据分析结果与方案执行往往很难做到一致。不过,在最近的移动游戏市场,已经有很多的公司或分析师慢慢注意到这一点,因为移动设备可以更加精准地定位一个用户,同时移动提供了更加方便和快捷的消息推送和内容下发机制,这使得我们至少从游戏运营层面可以做到根据设备、地域、渠道、游戏行为、付费行为等方面更加准确和快速地对目标用户进行营销,已经可以做到数据分析结果的最大化利用。

例如一款游戏,如果一个活跃用户连续3天不进入游戏,则从游戏中流失的概率增加10%,此时我们就需要精确定位这样一个群体,进行目标用户的营销和召回计划。划分的目标用户如图1-8所示。

图1-8 目标用户划分

根据分析结果,最终通过A/B test(分组对照测试)等方式将运营消息和活动下发到用户移动设备上,使得目标用户的转化得以提升。这是对数据分析结果的最佳利用,同时也是在不断积累运营经验。从长远来看,会形成一系列的运营模型,从此不必再摸着石头过河,也不必每一次运营活动和执行都是依靠感性认知完成。

建议方案是整个游戏数据分析的重要一环,因为我们最终还要进行效果的检验,并且通过和分析目标进行比较,判断是否达到了预期。其实,整个数据分析过程是一个循环,只不过在这一步把分析结果的价值通过一定的手段和方式发挥出来,最终经过检验和不断修正,形成经验和原则。游戏数据分析师最需要突破的也恰恰是这一步,从方案执行的实时性和分析师职能的突破两个方面来看,都将产生深远的影响。当然,刚才提到的借助于内容推荐只是达成这一目标的一种方式而已。