iOS/Swift: более 10 экземпляров ADBannerView

Я получаю это предупреждение после 10 просмотров экрана.

В настоящее время существует более 10 экземпляров ADBannerView или ADInterstitialView. Это неправильное использование iAd API, в результате чего пострадает эффективность рекламы. Это сообщение печатается только один раз.

Я реализовал AdBannerView через InterfaceBuilder. Я не явно программно создаю ADBannerView каждый раз при загрузке представления.

Я просто ссылаюсь на AdBannerView как на @IBOutlet:

@IBOutlet weak var iAdsBanner: ADBannerView!

и скрыть/показать его, изменив его положение, как это предлагается в документации Apple.

Почему я получаю такую ​​ошибку?


person Daniele B    schedule 10.12.2015    source источник


Ответы (1)


Почему вы делаете выход для баннера. После iOS 7 многое изменилось. Если вам нужна iAds, все, что вам нужно сделать, это добавить iAdsFramework, импортировать фреймворк в UIViewController и в viewDidLoad() написать следующий код.

 self.canDisplayBannerAds = true;

Он начнет показывать рекламу.

ОБНОВЛЕНИЕ Забудьте о canDisplayBannerAds, так как ваши требования отличаются. Просто создайте один экземпляр для представления баннера в вашем AppDelegate, и в вашем контроллере представления получите этот экземпляр, установите фреймы и добавьте его как подвид и не забудьте удалить его, когда ваш контроллер исчезнет. Проверьте эту ссылку, и вы получите идею. stackoverflow.com/questions/28514758/…

person Muneeba    schedule 16.12.2015
comment
это потому, что мне нужно разместить баннер в определенной позиции, следуя определенным ограничениям - person Daniele B; 16.12.2015
comment
Хорошо, тогда вы должны правильно удалить свой bannerView в viewDidDisappear вашего контроллера, если вы создаете экземпляр для каждого экрана. Или сделайте только один экземпляр adBannerView, как в AppDelegate, и добавьте/удалите его в представлении вашего контроллера. - person Muneeba; 16.12.2015
comment
У меня есть баннер в двух разных контроллерах представления. Я считаю, что не создаю экземпляр каждый раз, так как я просто добавил баннеры с помощью InterfaceBuilder, ссылаясь на них в коде как на выход. Если я создам только один экземпляр в AppDelegate, как я смогу разместить их в Interface Builder? - person Daniele B; 16.12.2015
comment
но они активны и показывают рекламу, хотя ваш контроллер не виден. вам нужно будет добавить их программно. как подвид, и вам нужно определить рамки для вашего баннера, или вы также можете добавить его как подвид в окне. - person Muneeba; 16.12.2015
comment
Я сейчас в замешательстве. Если я правильно понимаю, вы говорите, что я не должен добавлять их с помощью InterfaceBuilder. Но как мне их создать, используя self.canDisplayBannerAds = true или создав экземпляр в AppDelegate? В случае, если я создаю экземпляр в AppDelegate, должен ли я создать два разных экземпляра (по 1 для каждого контроллера представления) или только один? и мне все равно их скрывать с помощью viewDidDisappear? - person Daniele B; 16.12.2015
comment
не путайте :). Забудьте о canDisplayBannerAds, так как ваши требования отличаются. Просто создайте один экземпляр для представления баннера в вашем AppDelegate, а в контроллере представления получите этот экземпляр, установите кадры и добавьте его в качестве подпредставления и не забудьте удалить его, когда ваш контроллер исчезнет. Проверьте эту ссылку, вы получите идею. stackoverflow.com/questions/28514758/ - person Muneeba; 16.12.2015
comment
Хорошо спасибо! Можете ли вы подтвердить, достаточно ли создать только 1 экземпляр, или мне следует создать два разных экземпляра, по одному для каждого из двух контроллеров представления? - person Daniele B; 16.12.2015
comment
Давайте продолжим обсуждение в чате. - person Muneeba; 16.12.2015