Edited at

Swift製iOSアプリの広告をiAdからAdMobへ

More than 3 years have passed since last update.


ナニコレ

僕が個人で配信しているiOSアプリの広告はiAdを利用しているのですが、iAd App Networkが今月末(2016年6月)に終了することもあり、今後の行方が不透明なので、Google先生のAdMobに置き換えました。

このタイミングで置き換えを検討している方もいるかもしれませんので、手順を残しておきます。


AdMob登録編

何はともあれAdMobに登録しましょう。事前にGoogleアカウントを用意しておいてください。


AdMobアカウント開設

以下のURLからアカウント登録を行ってください。

https://www.google.co.jp/admob/

AdSenseやAdwordsのアカウント登録も一緒に行います。

ここはサクッと出来ると思います。


広告作成

アカウント作成が完了したら、広告を作成します。

AdMobにログインして、以下のURLにアクセスしてください(登録のタイミングでたぶんこのページに来てると思いますが念のため)。

https://apps.admob.com/

image

上記のような画面が表示されると思いますので + 新しいアプリを収益化 ボタンを押してください(広告はアプリ単位で必要です) 。


アプリを選択

image

上記のような画面が表示されるので、検索フォームに対象のアプリ名を入力し、アプリを選択して追加してください。


広告フォーマットの選択と広告ユニット名の設定

image

次に広告フォーマットを設定します。僕の場合、バナーを設定しました。

上記の画像のような感じで値を設定して、保存してください。


Firebaseアナリティクスを設定する(任意)

image

話題の Firebase の連携もここで出来るようですが、今回はスキップしました。


表示の設定方法

image

ここまでくると広告の作成が完了しているので、Google Mobile Ads SDKをダウンロードしましょう。

また、開発時に 広告ユニットID を使用するので事前にメモしておいてください(後からでも確認可能です)。

AdMobの設定は以上です。


AdMob広告組み込み編

それでは早速AdMobの組み込みを行いましょう。事前にSDKをダウンロードしておいてください。


組み込みフレームワークのインポート

AdMobの利用にあたり、いくつかフレームワークが必要なので、インポートが済んでいない方はインポートを行ってください。

Xcodeを起動し Project->TARGET->General->Linked Frameworks and Libraries から、以下のフレームワークをプロジェクトにインポートします。


  • AdSupport

  • AudioToolbox

  • AVFoundation

  • CoreGraphics

  • CoreMedia

  • CoreTelephony

  • EventKit

  • EventKitUI

  • MessageUI

  • StoreKit

  • SystemConfiguration


AdMob SDKのインストール

そして Project->TARGET->Build Phases->Link Binary With Libraries から、ダウンロードした GoogleMobileAds.framework フォルダ?をドラッグしてインストールします。

こんな感じになっていればOKです。

image


コーディング

いよいよコードを修正します。広告を表示したい ViewController を開きます。

ちなみにSwiftのバージョンは2.2です。

iAdを表示していた時はこんな感じだと思います。


IadViewController.swift

import UIKit

import iAd

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

/* アプリの処理なんやかんや */

// iAd広告設定
self.canDisplayBannerAds = true
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}


これをこうします。


AdmobViewController.swift

import UIKit

// import iAd
import GoogleMobileAds

class ViewController: UIViewController, GADBannerViewDelegate {

override func viewDidLoad() {
super.viewDidLoad()

/* アプリの処理なんやかんや */

// iAd広告設定
// self.canDisplayBannerAds = true

// AdMob広告設定
var bannerView: GADBannerView = GADBannerView()
bannerView = GADBannerView(adSize:kGADAdSizeBanner)
bannerView.frame.origin = CGPointMake(0, self.view.frame.size.height - bannerView.frame.height)
bannerView.frame.size = CGSizeMake(self.view.frame.width, bannerView.frame.height)
// AdMobで発行された広告ユニットIDを設定
bannerView.adUnitID = "ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX"
bannerView.delegate = self
bannerView.rootViewController = self
let gadRequest:GADRequest = GADRequest()
// テスト用の広告を表示する時のみ使用(申請時に削除)
// gadRequest.testDevices = ["12345678abcdefgh"]
bannerView.loadRequest(gadRequest)
self.view.addSubview(bannerView)
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}


つまり、、、


  • GoogleMobileAdsをインポート

  • GADBannerViewDelegateをクラスに追加

  • 広告バナーをViewに追加


    • 広告ユニットIDを設定



をすれば、AdMobの広告が表示されるようになります。

iAdよりは多少面倒ですが、それでもかなり簡単ですね!

バナーサイズなども色々設定出来るようですので、詳細は公式のドキュメントを参照してください。


App Store申請編

あとは申請するだけですが、ひとつだけ注意点が。

アプリ内でIDFA(広告ID)を使用しているかどうかの確認で、iAdの場合はいいえを選びますが、AdMobの場合ははいを選択する必要があります。

それ以外はいつも通りです!


最後に

最近はApp Storeの審査期間が爆速なので、早ければ1〜2日でAdMobデビュー出来ると思います(僕の場合は12時間もかかりませんでした)。

というわけで、皆さんもよきAdMobライフを!


参考サイト

iPhoneアプリ(Swift)にAdMob広告を導入する方法:

http://www.webopixel.net/ios/995.html

Swift:iOS アプリで AdMob 広告を実装・表示する:

http://www.sirochro.com/note/swift-admob-implementation/

アプリのリリース - 審査提出時の広告ID(IDFA)等チェックの選択方法

http://swift-bettychang.hatenadiary.jp/entry/2016/01/08/170831