Chartboost успешно показывает рекламу, но по-прежнему не удается загрузить межстраничную рекламу, реклама не найдена!

В applicationDidBecomeActive, если вызывается didFailToLoadInterstitial, у меня всплывает межстраничное объявление admob. Но chartboost успешно показывает рекламу и по-прежнему вызывает didFailToLoadInterstitial, поэтому всплывают оба всплывающих окна.

Как это решить? Как я могу узнать, что chartboost успешно показывает рекламу? Тогда мне не нужно всплывающее рекламное объявление.

Изменить:

- (void)didDismissInterstitial:(NSString *)location {

    NSLog(@"dismissed interstitial at location %@", location);

    [[Chartboost sharedChartboost] cacheInterstitial:location];

}

Я должен использовать автокэш в приведенном выше коде, потому что это может сократить время для немедленной загрузки рекламы.

Мне нужно показать рекламу chartboost, если она не может отображаться, тогда приложение должно вместо этого показывать межстраничную рекламу admob.

Обе функции [[Chartboost sharedChartboost] cacheInterstitial:location]; и [[Chartboost sharedChartboost] showInterstitial:CBLocationHomeScreen]; будут вызывать didFailToLoadInterstitial, если загрузят ошибку.

Могут ли они вызывать разные didFailToLoadInterstitial функции? Поэтому я могу просто вызвать admob Interstitial, когда диаграмма showInterstitial загружает ошибку.

Есть ли способ узнать, сколько объявлений Chartboost доступно для показа сейчас?


person Gank    schedule 26.08.2014    source источник


Ответы (1)


@property (nonatomic, assign) BOOL donotShowAdmob;
@property (strong, nonatomic) NSTimer *myTimer;

- (void)applicationDidBecomeActive:(UIApplication *)application {

    // Begin a user session. Must not be dependent on user actions or any prior network requests.
    // Must be called every time your app becomes active.
    [Chartboost startWithAppId:@"537a2fe489b0bb64ac855ce2" appSignature:@"38cc6952604d5ab537deb627f2d91087f430df2b" delegate:self];

    if(![[AdManager inst] isRemoveAd])
    {
        [[Chartboost sharedChartboost] showInterstitial:CBLocationHomeScreen];
        [[Chartboost sharedChartboost] showInterstitial:CBLocationQuit];
    }
}

-(void) errorLoadAd
{
    if(!_donotShowAdmob)
    {
        MainViewController* cont=self.viewController;
        [cont showInterstitial ];
    }
}
- (BOOL)shouldDisplayInterstitial:(NSString *)location {
    _donotShowAdmob=TRUE;
    if (_myTimer!=nil) {
        [_myTimer invalidate];
        _myTimer = nil;
    }

    _myTimer = [NSTimer scheduledTimerWithTimeInterval: 3.0
      target: self
      selector:@selector(onTick:)
      userInfo: nil repeats:NO];

// Otherwise return YES to display the interstitial
    return YES;

}

-(void)onTick:(NSTimer*)timer
{
    _donotShowAdmob=FALSE;
    NSLog(@"Tick...");
}
- (void)didFailToLoadInterstitial:(NSString *)location withError:(CBLoadError)error {
    [self errorLoadAd];

    switch(error){
        case CBLoadErrorInternetUnavailable: {
            NSLog(@"Failed to load Interstitial, no Internet connection !");
        } break;
        case CBLoadErrorInternal: {
            NSLog(@"Failed to load Interstitial, internal error !");
        } break;
        case CBLoadErrorNetworkFailure: {
            NSLog(@"Failed to load Interstitial, network error !");
        } break;
        case CBLoadErrorWrongOrientation: {
            NSLog(@"Failed to load Interstitial, wrong orientation !");
        } break;
        case CBLoadErrorTooManyConnections: {
            NSLog(@"Failed to load Interstitial, too many connections !");
        } break;
        case CBLoadErrorFirstSessionInterstitialsDisabled: {
            NSLog(@"Failed to load Interstitial, first session !");
        } break;
        case CBLoadErrorNoAdFound : {
            NSLog(@"Failed to load Interstitial, no ad found !");
        } break;
        case CBLoadErrorSessionNotStarted : {
            NSLog(@"Failed to load Interstitial, session not started !");
        } break;
        default: {
            NSLog(@"Failed to load Interstitial, unknown error !");
        }
    }
}

Я использую NSTimer, чтобы решить эту проблему, через 3 секунды после того, как chartboost показывает, что все в порядке, не показывать admob Interstitial. Но все же иногда показывает две рекламы...

Изменить: Решено hasCachedInterstitial

person Gank    schedule 27.08.2014