google admob ios: ошибка запроса: нет рекламы для показа

Я нашел связанный поток Ошибка AdMob Ios: не удалось получить объявление с ошибкой: Ошибка запроса: нет объявления для показа, но это не решает мою проблему.

Я пытаюсь создать межстраничное объявление, используя последний пример проекта из кода Google: https://google-mobile-dev.googlecode.com/files/InterstitialExample_iOS_3.0.zip.

Я изменил kSampleAdUnitID на идентификатор моего объявления.

Вчера, когда я нажал на Load Interstitial, я получил Request Error: No ad to show. Мне пришлось нажать 4-5 раз, чтобы это сработало.

Сегодня я использую тот же код без изменений, но независимо от того, сколько раз я нажимаю на Load Interstitial, я получаю упомянутую выше ошибку.

Любая помощь здесь?


person Ketan    schedule 14.01.2014    source источник


Ответы (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
person tanzolone    schedule 14.01.2014
comment
Спасибо за if (!self.interstitial.hasBeenUsed) - person msrdjan; 05.08.2014