我基本上复制粘贴并稍微修改了此Google移动广告官方分支机构的演示项目广告设置,我的横幅广告显示正常,但无论如何都不会显示插页式广告。
在这里,我使用AdManager static class
:
在开始游戏后立即调用此InitializeAds()
:
public static void InitializeAds()
{
MobileAds.Initialize(appID);
}
当然,在有广告的每个级别,GetSomeAdRequests()
方法中都包含以下Start()
。
public static void GetSomeAdRequests()
{
AdRequestBANNER = CreateAdRequest();
AdRequestINTERST = CreateAdRequest();
}
public static AdRequest CreateAdRequest()
{
AdRequest request = new AdRequest.Builder().Build();
return request;
}
毋庸置疑,我使用Google提供的测试人员视频和横幅ID。
接下来,我的RequestInterstitial
:
public static void RequestInterstitial()
{
// These ad units are configured to always serve test ads.
#if UNITY_EDITOR
string adUnitId = "unused";
#elif UNITY_ANDROID
string adUnitId = videoID;
#else
string adUnitId = "unexpected_platform";
#endif
// Clean up interstitial ad before creating a new one.
if (interstitial != null)
{
interstitial.Destroy();
}
// Create an interstitial.
interstitial = new InterstitialAd(adUnitId);
// Register for ad events.
interstitial.OnAdLoaded += HandleInterstitialLoaded;
interstitial.OnAdFailedToLoad += HandleInterstitialFailedToLoad;
interstitial.OnAdOpening += HandleInterstitialOpened;
interstitial.OnAdClosed += HandleInterstitialClosed;
interstitial.OnAdLeavingApplication += HandleInterstitialLeftApplication;
// Load an interstitial ad.
interstitial.LoadAd(AdRequestINTERST);
if (interstitial.IsLoaded())
{
interstitial.Show();
}
}
最后AdRequestINTERST
是:
private static AdRequest adRequestINTERST;
public static AdRequest AdRequestINTERST
{
get
{
if (adRequestINTERST == null)
{
adRequestINTERST = CreateAdRequest();
}
return adRequestINTERST;
}
set
{
adRequestINTERST = value;
}
}
以这种方式实现,以确保request
永远不会为空。
现在,我确实给了vid初始化的大量时间,因为它应该在leve start上加载,但它仍然没有做任何事情。没有错误,没有冻结。
在编辑器游戏中,我使用Debug.Log
对其进行了测试,并且它达到了实际调用广告的代码。它只是没有显示,而横幅广告工作正常。
有什么想法吗?
答案 0 :(得分:0)
我想我现在明白了。
所以我能做到这一点的方式是:
我在初始化场景时加载广告,或者确切地说,事先启动请求。并在加载后隐藏它们。
当我希望广告出现时,我只需要调用Show()
方法并繁荣,他们就在那里。
我的问题是什么,互联网速度不是最好的在这里,我要求并希望在请求后立即显示,这将不会发生。