我正在使用AdMob for Unity来构建我正在构建的Android游戏。
我遇到的问题是奖励广告在准备就绪时没有显示。
有问题的代码。
if(rewardBasedVideoAd.IsLoaded())
{
ErrorLog.text = "Ad Is Loaded.";
rewardBasedVideoAd.Show();
}
IsLoaded返回true,意味着广告已准备好展示,错误标签正在采用新值“Ad Is Loaded”。但广告本身并不是一直显示的。
有时会在第一次点击时显示,有时则不显示,只需点击几下即可显示。
这对用户来说似乎有点烦人,所以有人知道为什么会这样,我错过了什么。
如果这不是一个简单的解决方法,我可以尝试一个循环,尝试点击它几次,直到它被显示。
修改
感谢重复的答案,但问题不在于IsLoaded()返回false,因为它返回true并在ad.Show()函数旁边的日志中显示一条消息。
CODE SNIPPETS
void Start () {
RequestRewardBasedVideo();
}
private void RequestRewardBasedVideo()
{
AdReady = false;
string adUnitId = "ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX";
rewardBasedVideo.OnAdRewarded += HandleOnAdRewarded;
rewardBasedVideo.OnAdClosed += HandleOnAdClosed;
rewardBasedVideo.OnAdFailedToLoad += HandleOnAdFailedToLoad;
AdRequest request = new AdRequest.Builder().Build();
rewardBasedVideo.LoadAd(request, adUnitId);
ErrorBox.text = "Ad Loaded!";
}
public void ShowRewardVideo()
{
if(rewardBasedVideo.IsLoaded())
{
ErrorBox.text = "Ad Shown!";
rewardBasedVideo.Show();
}
else
{
ErrorBox.text = "ADmob ad not loaded!";
}
}
public void ClickConfirmWatch()
{
ShowRewardVideo();
}