Maccle

AdMob Ads SDK を Xcode に追加してアプリ内に広告を表示する方法

約 5 分
AdMob Ads SDK を Xcode に追加してアプリ内に広告を表示する方法

前回の Google Analytics SDK for iOS v2 の導入に続き、Google AdMob Ads SDK もバージョンアップしてたので既存のプロジェクトに組み込んでいたAdMob Ads SDK も最新版に置き換えてみた。

iAd の実装方法はこちら

前提環境

  • iOS SDK 6.1
  • Xcode 4.6
  • 対象AdMob SDK : ver.6.3.0

導入ステップ

  1. AdMob SDK for iOSのダウンロード
  2. Xcodeプロジェクトへの組み込み
  3. AdMob SDKに必要なフレームワークの追加
  4. AdMob広告をアプリ内に表示する
  5. 広告のイベントをハンドリングする

1. AdMob SDK for iOSのダウンロード

以下より最新のGoogle AdMob SDKをダウンロードします。
AdMob SDK for iOS Download

2. Xcodeプロジェクトへの組み込み

AdMob SDKを既存のXcodeプロジェクトに追加します。

見やすいようにAdMob SDK用のグループをXcode上で作っておきます。addgroupここでは「AdMob」という名前のグループにします。

解凍したフォルダ内の「Add-ons」以外のすべてのファイルを作成したグループ「AdMob」にドラッグ&ドロップで追加。addsdktoxcodeprj

3. AdMob SDKに必要なフレームワークの追加

AdMob SDKが参照する以下のフレームワークをプロジェクトに追加します。

  • StoreKit
  • AudioToolbox
  • MessageUI
  • SystemConfiguration
  • CoreGraphics
  • AdSupport

プロジェクトを選び、ターゲットの “Build Phases” の “Link Binary With Libraries” から上記フレームワークを追加。addframework
さらに、手順1 でプロジェクトに追加した “libGoogleAdMobAds.a” も追加する必要がありますが、これはiOSの標準フレームワークではないため、”Link Binary With Libraries“にて「Add Other…」ボタンから実ファイルを指定して直接追加します。addotherframework

さらに、”Other Linker Flags” に “-ObjC” を追加します。
ターゲットの “Build Settings” の “Linking” 内にある “Other Linker Flags” をダブルクリックして “-ObjC” を入力します(Debug と Release の両方に指定されている状態)。addotherlinkerflags

ここまで完了したら、一旦ビルドしてエラーが発生しないことを確認しましょう。

4. AdMob広告をアプリ内に表示する

広告を表示したいビューコントローラに、以下のコードを設置。

例えば、ViewController という名前のビューコントローラにAdMob広告を表示する場合は以下のようにします。

ViewController.h

ViewController.m の viewDidLoad

ちなみに、initWithAdSize で指定している広告バナーのサイズは、以下から選べます。
capture 2013-03-07 19.28.58

v.6.0.0 からはスマートバナーというデバイス別で異なるディスプレイサイズに自動で最適化してくれるユニットがあるので、kGADAdSizeSmartBannerPortraitkGADAdSizeSmartBannerLandscape を指定しておけばよさそうですね。
capture 2013-03-07 19.33.01

ViewController.m の dealloc

5. AdMob広告のイベントをハンドリングする

広告データのリクエストが失敗した場合や、広告が表示される直前、直後、クリックスルーなどといったイベントを拾うには、GADBannerViewDelegate のメソッドから必要なものを実装します。

用意されているデリゲートのメソッド

AdMob広告のリクエストが失敗した場合は、機会損失を防ぐため、例えば 代わりにiAdなど別の広告ネットワークの表示をする処理を実装することがよくあると思うので、リクエストに成功したときのイベント(adViewDidReceiveAd)と、失敗したときのイベント(didFailToReceiveAdWithError)は、最低限実装しておいたほうがよさそうです。

AdMob広告のデリゲートは、広告を表示したいビューコントローラのプロトコルに追加して継承することで利用できるようになります。

では、さきほどの ViewController にAdMob広告のイベントをハンドリング(デリゲートを追加)してみましょう。

VewController.h

広告のリクエスとが失敗したとき

広告のリクエストが成功したとき

以上、めちゃ簡単ですね!

実行結果

ビューの最上部に表示した場合。
capture 2013-03-07 19.24.27

ビューの最下部に表示した場合。
capture 2013-03-07 19.23.54

About The Author

某IT系なんちゃってエンジニアヨーダ
Apple好きだけど盲目マカーは気持ち悪いと思ってる中道だと思い込んでるしがないダメダメエンジニア。

今もってるApple製品↓
Macbook Pro 15 inch, iMac 27 inch (Late 2009), iPhone 6 Plus, iPad (初代! いらない!)
Follow :

Comments & Trackbacks

  • Comments ( 1 )
  • Trackbacks ( 0 )
  1. BuildPhases
     AVFoundation
     CoreTelephony
    もインポートすべき?。

Leave A Reply

*

Comment On Facebook