2015-09-28 11 views
5

Ich entwickle eine iOS-Anwendung mit Swift2 und Xcode7. Ich versuche, AdMob zu implementieren, aber meine Interstitial-Anzeige wird nicht angezeigt.AdMob-Interstitial-Fehler "Fehler beim Anfordern: Keine Anzeige zum Anzeigen"

override func viewDidLoad() { 
    super.viewDidLoad() 

    _interstitial = createAndLoadInterstitial() 
} 

func createAndLoadInterstitial()->GADInterstitial { 
    let interstitial = GADInterstitial(adUnitID: "interstitial_ID") 
    let gadRequest:GADRequest = GADRequest() 
    gadRequest.testDevices = ["test device id"] 
    interstitial.delegate = self 
    interstitial?.loadRequest(gadRequest) 

    return interstitial! 
} 

func interstitialDidReceiveAd(ad: GADInterstitial!) { 
    _interstitial?.presentFromRootViewController(self) 
} 

func interstitial(ad: GADInterstitial!, didFailToReceiveAdWithError error: GADRequestError!) { 
    print(error.localizedDescription) 
} 

func interstitialDidDismissScreen(ad: GADInterstitial!) { 
    _interstitial = createAndLoadInterstitial() 
} 

erhalte ich diesen Fehler:

Request Error: No ad to show.

enter image description here

+0

* Anforderungsfehler: Es werden keine Anzeigen geschaltet. * AdMob konnte Ihre Anzeigenanfrage nicht erfüllen. Versuch es noch einmal. Erhalten Sie weitere Fehler/Warnungen? Welche Version des AdMob SDK verwenden Sie? –

+0

@DanielStorm Ich habe AdMob mit CocoaPods installiert (Pod 'Google-Mobile-Ads-SDK', '~> 7.0'). Ich habe es erneut versucht, aber nur diesen Fehler erhalten. –

+0

Allerdings wird GADBannerView normalerweise angezeigt ... –

Antwort

6

Request Error: No ad to show.

bedeutet, dass Ihre Anfrage erfolgreich war, aber das AdMob hat keine Anzeige für Ihr Gerät zu dieser Zeit zu zeigen. Der beste Weg, um sicherzustellen, dass immer Anzeigen geschaltet werden, ist die Verwendung der Vermittlung, sodass eine nicht erfüllte Anfrage an ein anderes Kunden-Netzwerk weitergeleitet wird. Admob bietet dafür gute Mechanismen.

+0

Vielen Dank für Ihre Antwort. Das habe ich nie gedacht. Ich werde die Funktion bald implementieren! –

+0

Was ist mit "Mediation" gemeint und wie wird es implementiert? –

+0

Mithilfe der Vermittlung konfigurieren Sie Ihren Ad-Client so, dass er Anzeigen aus mehreren Ad-Netzwerken präsentiert. Die meisten Ad-Kunden wie Admob machen dies einfach, indem sie die Konfiguration auf dem Client beibehalten und die Liste der Werbenetzwerke über ihre Web-App konfigurieren können. – William

3

Sie sollten zwei Anzeigenblock-IDs haben. Eine für Ihre GADBannerView und eine für Ihre GADInterstitial. Stellen Sie sicher, dass die von AdMob für Ihr Interstitial bereitgestellte Anzeigenblock-ID genau entspricht, die sie Ihnen gegeben haben. Update auf die latest AdMob SDK, derzeit 7.5.0. Berücksichtigen Sie auch, dass Sie in bestimmten Abständen presentFromRootViewController(self) anrufen oder wenn der Benutzer eine gewünschte Aktion ausführt. Die Art und Weise, wie Sie es eingerichtet haben, wird weiterhin Interstitials nacheinander präsentieren, da Sie jedes Mal, wenn ein Nutzer entlassen wird, Anfragen für neue Interstitials senden und das Interstitial anzeigen, sobald es eine Anzeige erhält.

import UIKit 
import GoogleMobileAds 

class ViewController: UIViewController, GADInterstitialDelegate { 

    var myInterstitial : GADInterstitial? 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     myInterstitial = createAndLoadInterstitial() 
    } 

    func createAndLoadInterstitial()->GADInterstitial { 
     let interstitial = GADInterstitial(adUnitID: "Your Ad Unit ID") 
     interstitial.delegate = self 
     interstitial?.loadRequest(GADRequest()) 
     return interstitial 
    } 

    @IBAction func someButton(sender: AnyObject) { 
     myInterstitial?.presentFromRootViewController(self) 
    } 

    func interstitialDidReceiveAd(ad: GADInterstitial!) { 
     print("interstitialDidReceiveAd") 
    } 

    func interstitial(ad: GADInterstitial!, didFailToReceiveAdWithError error: GADRequestError!) { 
     print(error.localizedDescription) 
    } 

    func interstitialDidDismissScreen(ad: GADInterstitial!) { 
     print("interstitialDidDismissScreen") 
     myInterstitial = createAndLoadInterstitial() 
    } 
+0

Vielen Dank für Ihre Wiederholung. Aber ich hatte bereits zwei Anzeigenblock-IDs für "GADBannerView" und "GADInterstitial". –

+0

@MitsuhikoShimomura Vergewissern Sie sich, dass die Anzeigenblock-ID für Ihr Interstitial genau mit der AdMob übereinstimmt, mit der Sie ausgeliefert wurden. Wenn Sie eine Anzeigenblock-ID verwenden, die nicht vorhanden ist, wird der Fehler "Fehler beim Anfordern: Keine Anzeigen werden angezeigt" angezeigt. –

+0

Meine AdMob-Konsole (http://i.stack.imgur.com/mMVQH.png). Ich habe Unit ID von dort kopiert, also bin ich mir sicher nicht falsch. –

Verwandte Themen