2010-09-02 16 views
9

Ho creato la mia app in questo modo e tutto sembra funzionare più o meno. Dopo aver saputo del tasso di riempimento notoriamente basso di IAd, ho deciso che questo sarebbe stato il metodo migliore, ma ho provato a cercarlo su google e non sono riuscito a trovare record di nessun altro che implementasse gli annunci nella loro app in questo modo. Questo viola i TOS?Utilizzo di iAd come rete pubblicitaria predefinita e AdMob se iAd non riesce

risposta

10

Perché non utilizzare Adwhirl. Il suo ottimo sdk che ti consente di fare esattamente ciò di cui hai bisogno. Puoi impostare le priorità per le diverse reti pubblicitarie che possono essere modificate al volo se trovi una rete migliore rispetto ad altre ecc.

Gestisce tutta la logica per cui l'annuncio deve essere visualizzato in base a errore o priorità della richiesta senza che sia necessario preoccuparsi di questo Tutto ciò che fai è creare una visualizzazione ad alta velocità e richiedere un annuncio. Adwhirl fa il resto, incluso un adeguato aggiornamento. Se un iAd non riesce per la prima volta e quindi mostra un admob, ma il successivo carico di iAd verrà visualizzato al posto di AdMob, supponendo che tu abbia impostato iAd come rete con priorità più alta.

http://adwhirl.com

+0

Questa è la soluzione che ho deciso, ma ho riscontrato alcuni problemi dopo l'implementazione di AdWhirl. Ancora più importante, l'app richiederà un annuncio all'avvio e non riuscirà mai a fare un'altra richiesta! Spesso caricherò l'app e l'app non raggiungerà mai né AdWhirlDidReceiveAd: né adWhirlDidFailToReceiveAd :. Inoltre, le mie richieste iAd falliscono sempre, quindi non posso nemmeno vedere il frame dell'annuncio di cui ho bisogno per completare visivamente l'integrazione degli annunci nella mia app! –

+0

Come va il tuo fill rate con iAds? Hai qualche pubblicità? – Goles

+0

Adwirl non supporta ancora ARC. –

1

Ho iAds e Admob.

Si consiglia vivamente di caricare un iAd prima e se non si ottiene un annuncio AdMob. iAd ha un ECPM molto più alto di AdMob se ricevi un annuncio. Ricorda che iAd rinfresca ogni 30 secondi, quindi il metodo non viene richiamato più volte.

La mia app è stata approvata è possibile ottenerla, Octopus Oracle. http://kurl.ws/Ay

+0

Grande, grazie per quell'informazione. Due annunci di AdMob apparivano sullo schermo e sono stato in grado di risolverlo dopo aver capito che il metodo di IAD Fail viene richiamato ogni 30 secondi. Come si gestisce il caso in cui inizialmente iAd non riesce, si posiziona correttamente un annuncio admob nella visualizzazione, quindi iAd avrà più tempo dopo. Può succedere una situazione del genere? –

+0

Penso di nascondere la vista di iAd, per ogni evenienza. Quello che probabilmente farei è rimettere la vista di iAd e rimuovere admob. iAd ti farà guadagnare un bel po 'di soldi. –

3

stai nascondendo l'ADBannerView impostando visibile a NO? Con ADBannerView, se si imposta visibile su NO, allora smette di chiedere annunci. Per "nascondere" ADBannerView, è necessario tradurlo in qualche luogo fuori dallo schermo.

1

È possibile utilizzare AdWhirl e il suo miglior tutorial è qui Tutorial

0

Ho finito con questa strategia:

prima di tutto ho creato 2 prese dalla storyboard, una per il ADBannerView e un altro per la GADBannerView

@IBOutlet weak var iadBannerView: ADBannerView! 
@IBOutlet weak var adMobBannerView: GADBannerView! 

Nella tua viewDidLoad voi può fare questo:

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.iadBannerView.hidden = true 
    self.adMobBannerView.hidden = true 
    self.iadBannerView.delegate = self 
    NSTimer.scheduledTimerWithTimeInterval(35, target: self, selector: Selector("dispalyGoogleBanner"), userInfo: nil, repeats: false) 
} 

Quindi qui hai nascosto entrambi i banner (se preferisci puoi farlo direttamente nello storyboard). quindi attendi 35 secondi prima per visualizzare gli annunci google. Quindi, prima di visualizzare gli annunci google, in sostanza, vuoi vedere se IAD è disponibile.

questo è il metodo utilizzato per visualizzare il banner di Google:

//MARK: - Google banner 
    func dispalyGoogleBanner() { 
     if !self.isDisplayIAD && !idDisplayADMob { 
     idDisplayADMob = true 
     self.adMobBannerView.adUnitID = kAdUnitID 
     self.adMobBannerView.hidden = false 
     self.adMobBannerView.rootViewController = self 
     self.adMobBannerView.loadRequest(GADRequest()) 
     } 
    } 

così prima per visualizzare il banner di Google, ci assicuriamo che il banner iAd e il banner AdMob non sono ancora visualizzati. Se questo è il caso, allora possiamo inviare la richiesta per visualizzare il banner ADMob.

Qui il mio attuazione del ADBannerViewDelegate

func bannerViewDidLoadAd(banner: ADBannerView!) { 
     self.iadBannerView = banner 
     self.iadBannerView.hidden = false 
     self.adMobBannerView.hidden = true 
     idDisplayADMob = false 
     self.view.layoutIfNeeded() 
    } 

    func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError 
     error: NSError!) { 
      println(error) 
      isDisplayIAD = false 
      self.iadBannerView.hidden = true 
      self.dispalyGoogleBanner() 
    } 

    func bannerViewActionDidFinish(banner: ADBannerView!) { 
     self.iadBannerView = banner 
     self.iadBannerView.hidden = true 
     isDisplayIAD = false 
     dispalyGoogleBanner() 
    } 

    func bannerViewWillLoadAd(banner: ADBannerView!) { 
     //remove the google banner if displayed 
     isDisplayIAD = true 
     self.iadBannerView.hidden = false 
     self.adMobBannerView.hidden = true 
     idDisplayADMob = false 
     self.view.layoutIfNeeded() 
    } 

quello che ho praticamente fatto su questi delegati si tratta di verificare se il banner iAd è disponibile, se questo è così allora io nascosto il banner AdMob. Se l'iAD ha finito di visualizzare gli annunci, chiamerò il banner ADMob vedere bannerViewActionDidFinish

È possibile adattare facilmente questa logica alla propria implementazione.

Problemi correlati