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

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

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

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

 

 

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

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

<br />
import UIKit<br />
import GoogleMobileAds</p>
<p>class ViewController: UIViewController,GADInterstitialDelegate {</p>
<p>}<br />

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も用意しています。

以下、サンプルコード

<br />
import UIKit<br />
import GoogleMobileAds</p>
<p>class ViewController: UIViewController,GADInterstitialDelegate {<br />
    //AdMob管理画面から確認できるユニットIDを設定<br />
    let AdMobID = &quot;ca-app-puXXXXXX&quot;<br />
    let TEST_DEVICE_ID = &quot;b343xxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;<br />
    let AdMobTest:Bool = true<br />
    let SimulatorTest:Bool = false</p>
<p>}<br />

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

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

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

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

4,広告を表示する

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

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

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