Unity平台小游戏引力引擎(Gravity Engine)接入
Unity平台小游戏引力引擎(Gravity Engine)接入
前言
引力引擎是一个买量归因平台,我开发的小游戏正好也要用到这个。在接入期间,我也遇到了一些困难和疑惑。本篇文章正是用来记录我在接入的时候遇到的问题和解决方案。希望这个文章对你有所帮助。事先说明,这里的小游戏平台仅仅指抖音和微信这两个平台。如果后续我还遇到更多问题,我会补充说明。
接入SDK
按照引力引擎官方文档-Unity篇中的介绍。我们可以通过去它给的Github网址,下载其unitypackage。然后通过
Assets > Import Package > Custom Package
导入。我是下载完后直接拉倒项目中导入的。剩下具体的配置说明,请看官方文档,其实跟着做就可以了并没有什么大问题。提醒一下如果你没有用到EDM4U插件,那就不用管它的说明。
接下来就是代码部分了,实际上跟着官方文档都没有什么太大问题。只是官方文档不仅仅说明了小游戏的情况,我这边仅说明小游戏的部分。我们先启动SDK:
1 | // 手动初始化(动态挂载 GravityEngineAPI 脚本) |
(上面是官方的代码)。这个时候你或许有疑惑accessToken在哪里看?如果你仅仅是按照注释说明的网站后台-->设置-->应用列表,你会发现你压根找不到所谓的accessToken。你只能看到你注册的小游戏。实际上你还要选择你要的小游戏,然后点击其查看参数。
然后网站就会弹出如下弹窗:
复制上面的Access Token就可以了。接下来就要启用引擎初始化。
1 | public class InitializeCallbackImpl : IInitializeCallback |
(同样是官方的代码)这里要注意的是因为各个平台的提供的功能不同,部分平台获取玩家昵称需要额外的授权申请(说的就是微信)。如果要额外进行获取可能会导致用户流失。但是这里的nickname又不能为空。我的解决方案是参考了网上文章将nickname设置成clientId。
上报信息
关于上报信息,我想说的也不多,毕竟官方文档中说的很详细了。我只想提一点,那就是————上报消息的即时性。你在使用的时候会发现,明明你设定的都是对的,但是在后台你就是收不到消息。前提,你所有的名字和类型都是正确的情况。那么就只剩下一种可能,那就是上报消息并没有及时发送。此时你只需要在你认为需要及时上报的地方使用下面的代码即可:
1 | GravityEngine.GravityEngineAPI.Flush(); |
这个函数可以上报所有缓存的事件。
遇到的错误总结
- TypeError: MiniProgramError Cannot read properties of undefined (reading 'setOpenId') at _SetOpenId
我在微信小游戏平台上遇到这个错误。最后我发现是我将其SDK设置中微信小游戏下的选项勾选起来后出现的。
当我关闭后就正常了。因为我本身也没用到这个,所以直接关闭了。如果你需要,那可能要考虑一下对应的SDK冲突的问题。





