在 android API 上使用 cocos2dx (c++) 的多个 AdMob 奖励视频

Multiple AdMob rewarded videos using cocos2dx (c++) on android API

我正在尝试在我的应用中加载来自 AdMob 的多个奖励视频。它在 cocos2d-x (C++) 上,我们扩展了 atomic-plugin-ads 的代码来处理 AdMob 的奖励视频。这意味着我们对 Java 进行 JNI 调用以加载广告。此外,我们的整个应用程序在 Java 侧(AppActivity)运行一个 activity。

由于 Google's API for AdMob for rewarded videos 使用单例对象来加载和展示广告,我已经设法自行将来自 google 的 API 的回调发送到正确的广告单元.

如何在加载一个激励视频广告的同时显示另一个?我的单曲 AppActivity 中有一个单曲 Context,所以我只能从 MobileAds.getRewardedVideoAdInstance(context).

中得到一个实例

例子

假设我有两个广告单元:AdUnit1 和 AdUnit2。 我已成功加载 AdUnit1(已调用 onAdLoaded())。现在,我为 AdUnit2 调用 loadAd()

现在我的 AdUnit1 已加载,AdUnit2 正在加载。在那一刻,如果我调用 isLoaded(),它 returns 为假,如果我调用 show(),它什么也不做。

我怀疑单例处于 "loading" 的内部状态,因此未被视为已加载或准备显示。 AdUnit1 已经加载,我想展示它,但我无法在调用 show() 或检查 Google 的 API 中的 isLoaded() 时指定广告单元。

是否可以在加载一个激励视频广告的同时显示另一个?还有其他选择吗?

目前无法从 AdMob 一次加载多个广告。您可以展示一个广告并在 onRewardedVideoAdClosed 中开始加载下一个广告,但这已经很接近了。