[开发者心得] 游戏开发的秘密武器 | 通过埋点洞察游戏的未来

  [复制链接]
1667 |5
BokHua 发表于 2023-7-6 18:57:07 | 显示全部楼层 |阅读模式
什么是埋点
当我们玩游戏时,游戏创作者需要了解我们的游戏体验,以便改进游戏并使其更好玩。这就是游戏埋点发挥作用的地方。
埋点是一种技术手段,创作者使用它来收集游戏中的数据。实际上,埋点是在游戏代码中添加一些特殊的代码,用于跟踪和记录玩家的行为和游戏数据。这些代码会记录例如玩家点击按钮、通过关卡、获得奖励等事件。

为什么埋点
玩家行为分析:通过埋点收集的数据,创作者可以分析玩家的行为习惯,了解他们在游戏中做什么、喜欢什么和不喜欢什么。这有助于改进游戏设计和提供更好的游戏体验。
故障排查:埋点可以帮助创作者追踪和修复游戏中的错误和故障。如果玩家遇到问题,创作者可以通过埋点数据查找问题所在,并尽快修复。
决策支持:埋点数据还可以为创作者提供重要的决策支持。例如,通过分析玩家流失率,创作者可以了解到哪些关卡或内容需要改进,以提高玩家的留存率和游戏的盈利能力。
总之,埋点是游戏创作者用于了解玩家行为和优化游戏的一种工具。通过收集和分析埋点数据,创作者可以改进游戏设计、修复错误和做出更明智的决策,以提供更好玩、更有趣的游戏体验。

怎么埋点
事件埋点
事件埋点是最常见的一种埋点技术。通过在游戏中定义关键事件,并在这些事件发生时插入埋点代码,创作者可以追踪玩家在游戏中的行为。例如,当玩家通过一个关卡、购买一个物品或触发某个特定事件时,可以在相关代码中添加埋点,将这些事件数据发送到分析平台。通过分析这些事件数据,创作者可以了解玩家的游戏进度、购买决策以及其他行为习惯。

基于Google Analytics的事件埋点教程
Google Analytics网站配置准备
网站地址:https://analytics.google.com/
进入网站后登录自己的谷歌账号,如果没有账号则注册一个账号
账号注册教学:
image 1.png
image 2.png
image 3.png
网站基础配置(拿G-ID):
初次进入的时候是这样的界面,点击开始衡量按钮
image 4.png
在这个界面开设一个看数分析账号,名称可以随意取,自己能记住就行
image 5.png
紧接着设置媒体资源,在高级选项中不用创建 universal analytics 媒体资源,那个是老版本的方式
image 6.png
根据自己的需要选择下列选项
image 7.png
创建完成后我们需要创建数据流,拿到衡量ID,初次创建账号会自动跳转到此页面,如果不小心关掉了也不用担心,只需要在左下角设置按钮打开的界面中点击数据流就可以返回此界面
image 8.png
这里的网址可以随意填写,数据流名称可以取一个自己看了能明确知道是什么的名字
image 9.png
完成后就能拿到衡量ID了
image 10.png
游戏代码接入(推荐都只用在客户端处)
API说明(AnalyticsService | API
image.png
在游戏脚本中通过AnalyticsService.googleInit()将G-id(衡量ID)与游戏进行绑定

protected OnStart(): void {
    AnalyticsService.googleInit("G-2ZJYXXXXXX");
}

因为是编辑器模拟的浏览器,所以Google提供的自动埋点无法模拟,所以我们需要自己去代码里上传埋点事件。这里要特别注意,Google会自动收集客户端与服务器的自定义埋点数据,所以当一段代码客户端和服务都会执行的时候,埋点会上报2次。(推荐只用客户端)

btn.OnClicked().Add(()=>{
    AnalyticsService.googleEventTracking("click",{"btn1":"1"});
});


看数说明
如何及时验证绑定是否生效:
在报告中实时分栏,可以及时的查看到埋点是否正确上报,点击对应的埋点,还能查看到具体的参数和参数值
image 11.png
如果查看及分析数据:
在报告中事件分栏,能查看到对应事件每天的一个走向情况,如果需要对每个事件的参数进行筛选细查,则需要创建自定义维度和自定义指标去进行分析。注意:这里的数据每天更新1次,无法拿到当天的最新数据。
image 12.png

问题与解决方案
1.因为用户数这个无法模拟,所以对于游戏时长、游戏留存、时长分布这种重要数据游戏创作者很难通过Google Analytics分析出来,这些数据可以在创作者中心后台查看,埋点只需要关心游戏的玩法相关问题。

2.因为 Google Analytics 去分析参数,学习成本比较高,不适刚开始进入游戏行业的小白,建议这类创作者就只使用事件名去分析,比如游戏核心玩法漏斗,可以在每个漏斗环节直接埋一个事件,然后通过事件通过的人数比例去进行分析。

埋点思路与技巧
设计思路
用户行为是否按照设计路径进行,例如:
  • 登录/注册事件埋点:记录用户登录或注册的时间戳,以确定用户的活跃时间段。
  • 新手引导步骤埋点:在游戏的新手引导过程中,记录每个关键步骤的完成情况,例如完成教学任务、了解基本操作等。
  • 游戏主线任务埋点:跟踪用户在前3分钟、10分钟和一天内完成的主要任务,以验证用户是否按照预期路径进行。
  • 关卡通过率埋点:记录用户在不同时间段内通过关卡的情况,以确定用户在游戏中的进度和行为路径。

用户的行为节奏是否符合设计预期,例如:
  • 进入游戏时间埋点:记录用户从开始游戏到进入核心体验的时间,以确定用户的启动速度。
  • 核心操作完成时间埋点:记录用户完成第一次核心操作的时间,例如完成首次射击、解锁特殊技能等,以验证用户的进度和行为节奏。

各系统和玩法的渗透率和预期数据是什么,是否符合预期,例如:
  • 系统参与率埋点:记录用户参与每个系统或玩法的比例,例如购买物品、加入公会等,以验证参与率是否符合预期。
  • 不同阶段用户参与率埋点:记录用户在游戏的不同阶段(例如前3分钟、10分钟)参与每个系统或玩法的比例,以验证预期的分阶段参与率是否得到满足。

游戏核心体验是否达到预期,例如:
  • 爽点触发埋点:记录玩家触发游戏中的爽点时的频率和条件,例如成功击杀敌人、获得强力装备等。
  • 升级/进化埋点:跟踪玩家在游戏中的升级或进化过程,记录升级的次数、速度和达成条件,以验证玩家的养成体验是否符合预期。
  • 具体的埋点实施会因游戏类型和设计特点而异。在实际应用中,创作者可以根据游戏的需求和目标,选择合适的埋点方式,并结合数据分析来评估用户行为和游戏体验的符合度。

埋点案例
埋点分析
从《战士模拟器》的新手引导切入,可以把整个新手引导看做一个整体,而埋点是不断在上报新手引导的阶段。可以先看到《战士模拟器》的新手引导有以下步骤:
点击攻击按钮
image 13.png
武器装备引导
20230706154538_rec_-convert.gif
任务界面引导
20230706154729_rec_-convert.gif
合成武器引导
20230706155350_rec_-convert.gif
抽宠物引导
20230706155828_rec_-convert.gif
可以看到每个步骤都在UI界面上完成,因此我们可以在每个步骤的最后一个操作节点上进行埋点上报。通常,大多数步骤都以关闭UI界面作为最后一个操作,因此可以在关闭UI界面时进行埋点上报,表示该步骤已完成。
我们可以将这种埋点事件抽象为:
image.png
看数分析
通过埋点事件和参数,可以获取以下指标来评估玩家是否完成新手引导,并检测新手引导过程中的障碍。以下数据是一个月内模拟的玩家新手引导完成率。
image.png
新手引导一般在玩家进入游戏后自动开始,因此新手引导开始的人数基本上等同于一个月的活跃用户数(DNU)。数据中的波动是正常的。然而,我们注意到模拟数据中的抽宠物引导完成率出现了明显的下降,这明显存在问题。因此,我们需要确定在新手引导过程中,从合成武器到抽宠物之间发生了什么问题,导致玩家没有完成整个新手引导流程。观察游戏流程后发现,在合成武器后,玩家需要走一段距离才能抽取宠物,可能是因为缺乏强制手段导致部分玩家在这个环节中断。因此,我们可以根据这些数据优化游戏,让玩家在合成武器后强制传送到扭蛋机面前,打开抽宠物的UI界面并强制进行抽取流程。随后,我们可以观察数据是否有改善。如果改善了,说明这个手段是有效的;反之,则需要优化其他方面。
总而言之,通过埋点手段,我们可以很好地了解用户的行为并获取游戏优化的方向。如果发现游戏的用户流失严重,不妨使用埋点手段来了解用户行为,从而更好地优化游戏。






image.png
回复

使用道具 举报

kk 发表于 2023-7-6 21:41:43 | 显示全部楼层
回复

使用道具 举报

女神她哥 发表于 2023-7-7 09:08:13 | 显示全部楼层
学到了 学到了
回复

使用道具 举报

Othanse 发表于 2023-7-7 10:00:59 | 显示全部楼层
大赞大赞
回复

使用道具 举报

阿柔 发表于 2023-8-4 15:51:29 | 显示全部楼层
网站打不开呀哥哥。
回复

使用道具 举报

你若盛开,蝴蝶自来 发表于 2023-9-6 14:03:32 | 显示全部楼层
我在一个游戏中有选择地图的功能,我希望通过此埋点统计玩家对地图的选择数量。在不同的地图按钮上使用下面的脚本:
AnalyticsService.googleEventTracking("选择地图1", { "map1": "1" });
AnalyticsService.googleEventTracking("选择地图2", { "map2": "1" });
AnalyticsService.googleEventTracking("选择地图3", { "map3": "1" });
以上代码是否正确呢。如何理解埋点参数,如何应用。
回复

使用道具 举报

72小时热榜
热门版块
快速回复 返回顶部 返回列表