1

以前,我使用 Unity Ads 在使用 unity 制作的游戏中显示插页式广告和奖励广告,但现在我改用 Google Ads (AdMob)。

我从这里和下一个从这里阅读文档,一切似乎都在工作,但有点慢。

我有3个场景:

  • 主菜单
  • 游戏
  • 店铺

我需要在游戏和商店场景中展示奖励广告。在游戏场景中,用户可以在他死去的地方继续观看广告。他只有 5 秒的时间来做这件事。如果他不看广告,那么他有能力以+25 硬币观看另一个广告、重新开始游戏或进入主菜单。在主菜单场景中,用户可以去商店购买更多角色,如果他观看奖励广告,这里还有一个 +25 硬币的按钮。因此,奖励广告有 3 个位置。

在主菜单脚本中,Start()方法中有:

MobileAds.Initialize(appId);

问题是,当用户在主菜单场景中单击“存储”按钮时,在Start()我调用的方法中

// Create an empty ad request.
AdRequest request = new AdRequest.Builder().Build();
// Load the rewarded video ad with the request.
rewardBasedVideo.LoadAd(request, adUnitId);

并且用户可以立即点击执行此操作的“查看广告”按钮:

if (rewardBasedVideo.IsLoaded()) {
  rewardBasedVideo.Show();
}

还有一个问题... 奖励广告仍然没有加载,它将在调用后 1.5s - 2 s 后加载rewardBasedVideo.LoadAd(request, adUnitId);所以,用户必须多次点击它,直到广告出现。

我检查了很多其他使用 AdMob 的游戏,每个游戏都会立即显示广告。如何?有没有办法预加载奖励广告?

当出现死亡模式并且用户有 5 秒时间观看奖励广告直到他“完全死亡”但广告在约 3 秒后可用时,这也是一个糟糕的用户体验。

同样在商店中,在观看广告后,用户可以再次观看,所以OnAdClosed我在加载新广告时使用了相同的逻辑,但它也很慢,几秒钟后广告实际加载,我测试了其他游戏 - 他们没有没有那个问题。

你有什么建议吗?

4

1 回答 1

1

你需要打电话

rewardBasedVideo.LoadAd(request, adUnitId);

应用程序一启动。这将在提示用户观看时加载并准备广告。

我通常有一个空的游戏对象,其中包含一个名为“AdManager”的脚本,用于加载广告。它对自身有一个静态引用(单例模式),所以我可以很容易地从其他脚本中调用它。

这样,当应用程序启动时,广告就准备好了,当我想显示它时,我可以从任何我想调用的地方调用它。

关于在前一个结束后显示一个新的。除了物理上必须等到加载之外,我没有看到可行的选择。(请记住,广告在数据中可能非常大)

于 2018-08-26T14:40:47.593 回答