Cocos 接广告最容易写错的 6 个地方

给一套涂色小游戏模板配广告位的时候,我把三个位置的代码来回改了几轮,最后发现真正出问题的从来不是广告逻辑本身,而是几个看着不起眼的小地方。Cocos 接广告最容易写错的地方,其实集中在下面 6 处。

一、把广告实例当成能反复用的东西

最常见的写法错误,是在游戏启动时就创建好一个广告对象,然后每次要展示都拿它出来用。

问题在于,加载和展示是两件事。加载完成之后你手里的那个状态,展示过一次就变了。正确做法是每次展示前重新走一遍加载流程,把回调重新挂上。

具体动作:把广告逻辑收进一个统一入口,别在三个场景里各写一份。

二、回调挂在了错误的对象上

广告回调不触发,一大半原因在这里。你可能把回调挂在了场景节点上,而场景在切换时被销毁了。

节点没了,回调自然也不会执行。这时候广告其实播完了,玩家也看完了,但你的奖励逻辑一行都没跑。

具体动作:把回调挂在一个常驻节点或者全局管理器上,别挂在会被销毁的场景节点上。

三、广告位 ID 硬编码,加载失败也没有兜底

写死 ID 短期最省事,代价是后面每一次调整都要重新发版。而且测试环境和正式环境的 ID 是两套,很容易出现「测试没问题,上线没收入」这种事。

加载失败同样是常态,不是异常。网络抖动、广告库存不足都会导致失败。没有兜底的直接后果是界面卡在那里转圈,既没有广告也没有反馈。

具体动作:ID 抽到配置文件里按环境区分;加载失败时给一个可关闭的提示,别把流程卡死。

四、只写了完整观看这一条分支

激励视频的完整观看和提前关闭是两种结果,很多人只写了成功的那条。

玩家看到一半点叉,回调照样会触发,只是返回的状态不一样。如果你不判断状态就直接发奖励,等于把奖励免费送出去。

具体动作:把成功和失败两条分支都写上,失败分支里给一句明确提示。

五、在编辑器里测完就以为成了

浏览器预览和真机是两套环境,广告 SDK 在编辑器里根本不具备完整能力。

我见过太多人预览跑通了就提交审核,然后在真机上发现广告完全不出现。预览通过只是假阳性。

具体动作:上架前必须在真机上把加载、展示、回调、奖励发放整条链路走一遍。

六、这 6 个地方按修复优先级怎么排

如果时间不够,先修第二条和第五条。回调挂错对象是静默失败,编辑器测试是假阳性,这两个不修,其他都是白干。

第三条和第五条属于工程习惯,早改早省事。第一条和第四条属于写法习惯,改一次就一劳永逸。

Cocos 接广告最容易写错的地方,说到底就两类:一类是回调挂错了地方,一类是把编辑器当成了真机。

常见问题

Q:Cocos 接广告最容易写错的地方是哪个?

A:回调挂载对象错了最常见。广告播完了但回调不执行,玩家以为没反应,你也收不到收入,而且编辑器里测不出来。

Q:广告位 ID 能不能直接写在代码里?

A:能跑,但不建议。测试和正式是两套 ID,写死后每次调整都要重新发版,很浪费时间。

Q:在编辑器里测通了还需要真机测吗?

A:必须测。编辑器不具备广告 SDK 的完整能力,预览通过不代表真机通过,上架前一定要走一遍完整链路。

相关阅读


本文作者西米,37 岁程序员,一个人加五个 AI 员工在跑一家公司。踩过的坑和真实账本都写在公众号「西米分享」。

完整代码、踩坑清单与最新进展,都在公众号。

📱 关注公众号「西米分享」