【iOSアプリ開発】-swift2- AdMobで広告を表示する : 実装編<インタースティシャル広告>

これまでiOSアプリにおいて、AdMobを利用して広告を表示するための準備について説明してきました。

【iOSアプリ開発】-swift2- AdMobで広告を表示する : 準備編

今回は、実際にインタースティシャル広告を表示する方法について説明していきます。

 

 

1,バナーを表示したいViewControllerの設定

(1)GoogleMobileAdsをimport
(2)ViewControllerに対して、GADInterstitialDelegateを登録
ex) ViewController.swift

import UIKit
import GoogleMobileAds

class ViewController: UIViewController,GADInterstitialDelegate {

}

2,AdMobで作成した広告ユニット情報を設定

[/sourcecode]
(1)AdMobID
(2)TEST_DEVICE_IDは、エミュレータで動かす場合は、TEST_EMULATORに設定
実機で、動かす場合は、TEST_EMULATORに設定したままビルドするとXcodeのコンソールに
o get test ads on this device, call adRequest.addTestDevice(“D9XXXXXXXXXXXXXXXXXXXXXXXXXXXXX”);”
といったDeviceIDが出力されるので、この値を設定します。
(3)また、AdMobでは、広告の表示モードをテスト状態と本番状態でわけることができます。
基本的には開発中は、テストモードアプリを提出するときには本番モードに変更します。
今回はそのステータスを管理するためにAdMobTest:Boolを用意しております。
(4)さらに、開発しているテストをエミュレータでビルドするか実機でビルドするかで、すぎ切り替えることができるようにSimulatorTest:Boolも用意しています。

以下、サンプルコード

import UIKit
import GoogleMobileAds

class ViewController: UIViewController,GADInterstitialDelegate {
    //AdMob管理画面から確認できるユニットIDを設定
    let AdMobID = "ca-app-puXXXXXX"
    let TEST_DEVICE_ID = "b343xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    let AdMobTest:Bool = true
    let SimulatorTest:Bool = false

}

3,インタースティシャル広告を呼び出す関数を用意

・interstecial_ads()
(1)admobIntViewを広告ユニットIDを引数にしてGADInterstitial()で初期化します。
(2)次にadmobIntViewに表示する広告をリクエストするためのadmobRequest:GADRequestを初期化します。
(3)生成したadmobIntViewを返します。

・presentInterstitial()
(1)インタースティシャル広告が表示可能かどうかを確認
(2)可能なら広告を表示

func interstecial_ads() -> GADInterstitial{
        let admobIntView = GADInterstitial(adUnitID: AdMobID)
        admobIntView?.delegate = self
        let admobRequest:GADRequest = GADRequest()
        if AdMobTest {
            if SimulatorTest {
                admobRequest.testDevices = [kGADSimulatorID]
            }
            else {
                admobRequest.testDevices = [TEST_DEVICE_ID]
            }
        }
        admobIntView?.loadRequest(admobRequest)
        return admobIntView!
    }
    
    func presentInterstitial() {
        if let _ = _interstitial?.isReady {
            print("ready")
            _interstitial?.presentFromRootViewController(self)
        }else{
            print("not yet")
            //self._interstitial = self.interstecial_ads()
        }
    }

4,広告を表示する

今回は、viewDidLoadのタイミングで上のpresentInterstitial()によりインタースティシャル広告のviewを初期化、リクエストを行ない、その後1.5秒間隔でNSTimer.scheduledTimerWithTimeInterval を用いて、presentInterstitial()を定期的に呼び出すことによって、表示準備完了段階で広告の表示を行ないました。
 

バナー広告に関する表示方法についても説明していますので、参考にしてみて下さい↓

【iOSアプリ開発】-swift2- AdMobで広告を表示する : 実装編<バナー広告>