以前,我是在使用统一广告制作的游戏中使用Unity Ads来展示插页式广告和奖励广告,但是现在我改用Google Ads(AdMob)。
我从here阅读了文档,然后从here阅读了文档,一切似乎都可以正常运行,但是有点慢。
我有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();
}
有一个问题...奖励广告仍未加载,将在调用rewardBasedVideo.LoadAd(request, adUnitId);
后1.5秒-2 s后加载,因此,用户必须多次单击它,直到出现广告。>
我检查了很多其他使用AdMob的游戏,每个游戏都会立即显示广告。怎么样?有什么方法可以预加载奖励广告?
当出现模模模版并且用户有5秒的时间观看奖励广告,直到他“完全死亡”,但广告在约3秒后才可用,这也是一个糟糕的UX。
在商店中,观看广告后,用户也可以再次观看广告,因此在OnAdClosed
中,我采用了相同的逻辑来加载新广告,但速度也很慢,几秒钟后实际上已经加载了广告我测试了其他游戏-他们没有这个问题。
您有什么建议吗?
答案 0 :(得分:0)
您需要致电
rewardBasedVideo.LoadAd(request, adUnitId);
应用启动后。 这样会在提示用户观看广告时为其加载和准备广告。
我通常有一个空的游戏对象,其中包含一个名为“ AdManager”的脚本,用于加载广告。它具有对自身的静态引用(单一模式),因此我可以从其他脚本中轻松调用它。
这样,当应用启动时,广告就准备好了,当我想显示它时,我可以从任何地方调用它。
关于在前一个结束后显示一个新的。除了物理上必须等到加载它以外,我看不到其他可行的选择。 (请记住,广告在数据中可能很大)