2015-09-28 30 views
5

Swift2とXcode7を使用してiOSアプリケーションを開発しています。 AdMobを実装しようとしていますが、インタースティシャル広告は表示されません。AdMobインタースティシャルエラー「リ​​クエストエラー:表示する広告がありません」

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() 
} 

私はこのエラーが表示されます。

Request Error: No ad to show.

enter image description here

+0

*リクエストエラー:*を表示する広告はありません.AdMobは広告リクエストを入力できませんでした。再試行する。他のエラーや警告が表示されますか? AdMob SDKのどのバージョンを使用していますか? –

+0

@DanielStorm AdMobをCocoaPods(ポッド 'Google-Mobile-Ads-SDK'、 '〜7.0')にインストールしました。私はもう一度試しましたが、そのエラーだけを受けました。 –

+0

GADBannerViewは通常表示されます... –

答えて

6

Request Error: No ad to show.

リクエストが成功したことを意味しますがAdMobが、この時点で、あなたのデバイス用に表示する一切の広告を持っていないこと。広告を常に表示するには、メディエーションを使用して、満たされていないリクエストが別の広告ネットワークに配信されるようにすることをおすすめします。 Admobはそのための良い仕組みを提供しています。

+0

お返事ありがとうございます。私は決してそれを考えなかった。私はすぐに機能を実装します! –

+0

"仲介"とは何を意味し、どのように実装されていますか? –

+0

メディエーションでは、複数の広告ネットワークの広告を表示するように広告クライアントを設定します。 Admobのようなほとんどの広告クライアントは、クライアント上の設定を同じに保ち、ウェブアプリを介して広告ネットワークのリストを設定できるようにすることで、これを簡単にします。 – William

3

次の2つの広告ユニットIDのを持つ必要があります。 1つはGADBannerView、もう1つはGADInterstitialです。 AdMobからインタースティシャル用に提供された広告ユニットIDが、、正確にはであることを確認してください。 latest AdMob SDK(現時点では7.5.0)に更新してください。また、特定の間隔で、またはユーザが所望の動作を完了した後に、presentFromRootViewController(self)を呼び出すことも考慮する。新しいインタースティシャルのリクエストが送信されるたびにリクエストを送信してから、広告を受信するとすぐにインタースティシャルを表示するため、インタースティシャルを次々と表示し続けます。

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

再生いただきありがとうございます。しかし、私はすでに「GADBannerView」と「GADInterstitial」の2つの広告ユニットIDを持っています。 –

+0

@MitsuhikoShimomuraあなたのインタースティシャルの広告ユニットIDが、あなたが提供したAdMobとまったく同じであることを確認してください。存在しない/誤って入力された広告ユニットIDを使用すると、「リクエストエラー:広告が表示されません」というエラーが発生します。 –

+0

AdMobのコンソール(http://i.stack.imgur.com/mMVQH.png)。ユニットIDがそこからコピーされているので間違いないと思います。 –

関連する問題