Привет, пользователи Stackoverflow, я снова возвращаюсь с другой проблемой с моими межстраничными объявлениями. Это код, который я использую для показа рекламы:Interstitial iAd не работает в ландшафтном/горизонтальном (Spritekit)
-(void) loadInterstitialAd {
NSLog(@"loadInterstitialAd");
_interstitialAd = [[ADInterstitialAd alloc] init];
_interstitialAd.delegate = self;
adShowing = true;
}
-(void) interstitialAdWillLoad:(ADInterstitialAd *)interstitialAd {
}
-(void) interstitialAdDidLoad:(ADInterstitialAd *)interstitialAd {
NSLog(@"interstitialAdDidLoad");
interstitialAdView = [[UIView alloc] init];
interstitialAdView.frame = (self.view.bounds);
[self.view addSubview:interstitialAdView];
[_interstitialAd presentInView:interstitialAdView];
[UIViewController prepareInterstitialAds];
}
-(void) interstitialAdActionDidFinish:(ADInterstitialAd *)interstitialAd {
NSLog(@"interstitialAdActionDidFinish");
[interstitialAdView removeFromSuperview];
adShowing = false;
}
-(void) interstitialAd:(ADInterstitialAd *)interstitialAd didFailWithError:(NSError *)error {
// you must take this funcion , because without it ADInterstitial iAd will not work
NSLog(@"didFailWithError");
adShowing = false;
}
-(void) interstitialAdDidUnload:(ADInterstitialAd *)interstitialAd{
// you must take this funcion , because without it ADInterstitial iAd will not work
NSLog(@"interstitialAdDidUnload");
adShowing = false;
}
Этот код есть в моем классе GameScene. Первоначально я создал новое приложение для спрайтов для тестирования объявлений (приложение было портретом), и это сработало хорошо. Я перенес его на приложение, которое я намеревался опубликовать, которое было горизонтальным, и оно не сработало. Я установил некоторые NSLog для отслеживания того, что вызывается вместе с логическим adShowing, который изменяется в зависимости от состояния объявления. После запуска приложения и инициализации loadInterstitialAd
я заметил, что adShowing BOOL станет правдой, через пару секунд пройдет, а затем "didFailWithError"
появится в консоли, указывающим, что объявление не удалось показать, который говорит мне, что только объявления работа в портрете, по крайней мере, с моей настройкой. Есть ли у кого-нибудь идеи, что я могу сделать, чтобы изменить свой код, чтобы реклама работала в горизонтальном/альбомном режиме?
С наилучшими пожеланиями Райан
EDIT После довольно много испытаний, и я осмелюсь сказать, возится. Я заметил, что объявление действительно работает, но иногда очень редко :)
спасибо за ответ чувак! Теперь я получаю следующую ошибку в этой строке (до запуска приложения - показывает в разделе предупреждения Xcode) 'Нет видимого @interface для 'GameScene' объявляет селектор 'setInterstitialPresentationPolicy:'' – user2876115
Не размещайте его непосредственно в игровой сцене , Поместите его в контроллер просмотра, который представляет сцену. Если вы используете шаблон набора спрайтов из Xcode, он называется GameViewController. – beyowulf
Я поместил его в контроллер игрового представления, но я не получил сообщение об ошибке, но когда я его запустил, я все еще получаю сообщение об ошибке, которое я получил изначально. – user2876115