2013-06-22 5 views
3

Я выполнил custom event example на developers.google.com, но не смог получить объявление из пользовательской рекламной сети с ошибкой в ​​заголовке.Пользовательское событие admob mediation Запрос об ошибке: объявления не отображаются из всех настроенных рекламных сетей

После того, как я запрошу объявление для пользовательского события, requestBannerAd:parameter:label:request: в классе CustomAd получил вызов. Но затем (через несколько секунд) он прыгнул на adView:didFailToReceiveAdWithError: со следующей ошибкой. И мой пользовательский запрос сетевого объявления в requestBannerAd:parameter:label:request: не работал.

Error Domain=com.google.ads Code=9 "Request Error: No ad to show from all configured ad networks." UserInfo=0x1e8e31a0 {NSLocalizedDescription=Request Error: No ad to show from all configured ad networks., NSLocalizedFailureReason=Request Error: No ad to show from all configured ad networks.}

Я попытался добавить [self.delegate customEventBanner:self didReceiveAd:bannerView_]; к requestBannerAd:parameter:label:request:, а затем он работает.

Мой вопрос:

Могу ли я делать это правильно? Должен ли я звонить [self.delegate customEventBanner:self didReceiveAd:bannerView_]; вручную с requestBannerAd:parameter:label:request:, который не упоминается в официальном документе.

И для запроса объявления пользовательского события, который запускает requestBannerAd:parameter:label:request:, должен ли я установить для него gadBannerView_.delegate. Когда я его установил, а затем успешно получаю пользовательское событие (requestBannerAd:parameter:label:request: вызывается), почему вызываются adView:didFailToReceiveAdWithError, но не adViewDidReceiveAd:?

ответ

2

Вам необходимо позвонить [self.delegate customEventBanner:self didReceiveAd:bannerView_]; в какой-то момент вашего пользовательского потока событий. Если вы не сделаете этого в течение примерно 5 секунд после вызывания requestBannerAd:parameter:label:request:, MedMedia Mediation будет уходить с запросом на ваше пользовательское событие и двигаться дальше. Вот почему вы видите сообщение:

Error Domain=com.google.ads Code=9 "Request Error: No ad to show from all configured ad networks." UserInfo=0x1e8e31a0 {NSLocalizedDescription=Request Error: No ad to show from all configured ad networks., NSLocalizedFailureReason=Request Error: No ad to show from all configured ad networks.}

Что касается, когда для вызова [self.delegate customEventBanner:self didReceiveAd:bannerView_];, это зависит от вашего пользовательского события. Если ваше пользовательское событие просто возвращает статическое изображение, вы можете вызвать didReceiveAd: непосредственно в requestBannerAd:parameter:label:request: с этим изображением.

Но если вы реализуете какую-то рекламную сеть, которую AdMob Mediation не поддерживает, возможно, у них будет какой-то слушатель, чтобы рассказать вам, когда они получили объявление (в случае AdMob это будет GADBannerViewDelegate. adViewDidReceiveAd callback). Вы должны прослушивать полученный обратный вызов для этой сети, а в этом прослушивающем вызове - didReceiveAd:.

для основного GADRequest к AdMob, которая заканчивается вызывая ваше пользовательское событие, вы должны установить GADBannerViewDelegate на вашем GADBannerView слушать для обратных вызовов от пользовательского события или любой другой сети, вы можете иметь в вашем посредническом потоке. Если вы получаете adViewDidReceiveAd:, вы знаете, что AdMob Mediation нашел объявление из одной из ваших сетей.