【问题标题】:google admob ios: Request Error: No ad to showgoogle admob ios:请求错误:没有广告可显示
【发布时间】:2014-02-02 05:19:15
【问题描述】:

我找到了一个相关的线程AdMob Ios Error: Failed to receive ad with error: Request Error: No ad to show,但它并没有解决我的问题。

我正在尝试使用来自谷歌代码的最新示例项目创建一个插页式广告:https://google-mobile-dev.googlecode.com/files/InterstitialExample_iOS_3.0.zip

我已将 kSampleAdUnitID 更改为我的广告 ID。

昨天,当我点击Load Interstitial 时,我得到了Request Error: No ad to show。我必须点击 4-5 次才能工作。

今天,我使用相同的代码,但无论我点击多少次Load Interstitial,我都会收到上述错误。

这里有什么帮助吗?

【问题讨论】:

    标签: ios admob interstitial


    【解决方案1】:

    我的实现如下——希望对你有所帮助:

    @interface ViewController () <GADInterstitialDelegate>
    @property (strong, nonatomic) GADInterstitial *interstitial;   
    @end   
    
    
    @implementation ViewController
    
    #define MY_INTERSTITIAL_UNIT_ID @"...."
    
    - (void)preLoadInterstitial {
        //Call this method as soon as you can - loadRequest will run in the background and your interstitial will be ready when you need to show it
        GADRequest *request = [GADRequest request];
        self.interstitial = [[GADInterstitial alloc] init];
        self.interstitial.delegate = self;
        self.interstitial.adUnitID = MY_INTERSTITIAL_UNIT_ID;
        [self.interstitial loadRequest:request];
     }
    
    - (void)interstitialDidDismissScreen:(GADInterstitial *)ad
    {
        //An interstitial object can only be used once - so it's useful to automatically load a new one when the current one is dismissed
        [self preLoadInterstitial];
    }
    
    - (void)interstitial:(GADInterstitial *)ad didFailToReceiveAdWithError:(GADRequestError *)error
    {
        //If an error occurs and the interstitial is not received you might want to retry automatically after a certain interval
        [NSTimer scheduledTimerWithTimeInterval:3.0f target:self selector:@selector(preLoadInterstitial) userInfo:nil repeats:NO];
    }
    
    - (void) showInterstitial
    {
        //Call this method when you want to show the interstitial - the method should double check that the interstitial has not been used before trying to present it
        if (!self.interstitial.hasBeenUsed) [self.interstitial presentFromRootViewController:self];
    }
    
    @end
    

    【讨论】:

    • 感谢if (!self.interstitial.hasBeenUsed)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 2016-10-16
    • 2016-12-30
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    相关资源
    最近更新 更多