AdMobメディエーションを使うことで複数のアドネットワークを切り替えることができます。
AdMobの設定は各自で行なってください。
今回は一般的なiAdとAdMobの2種類の広告を扱います。
なお、ARC対応の場合はOther Linker Flags
に-ObjCを追加する必要があります。
SDK, フレームワークのインストール
必要なフレームワークは以下のとおり。
フレームワークが足りないとエラーが頻発するので注意してください。
- SystemConfiguration.framework
- MessageUI.framework
- AudioToolbox.framework
- iAd.framework
- StoreKit.framework
- AdSupport.framework
ダウンロードしたGoogleAdMobAdsSdkiOS-6.4.2
から以下のソース、アダプターを
ドラッグ&ドロップでプロジェクトにコピーします。
- GADAdMobExtras.h
- GADAdNetworkExtras.h
- GADAdSize.h
- GADBannerView.h
- GADBannerViewDelegate.h
- GADInterstitial.h
- GADInterstitialDelegate.h
- GADRequest.h
- GADRequestError.h
- libAdapterIAd.a
- libGoogleAdMobAds.a
libAdapterIAd.aはこちらからダウンロードできます。
実装
.hファイル
// BannerExampleViewController.h // SDK から GADBannerView の定義をインポートする #import "GADBannerView.h" // デリゲートを指定して広告取得成功時, 失敗時の挙動も記述する @interface BannerExampleViewController : UIViewController<GADBannerViewDelegate>{ // インスタンス変数として 1 つ宣言する GADBannerView *_bannerView; } @end
.mファイル
// BannerExampleViewController.m #import "BannerExampleViewController.h" @implementation BannerExampleViewController - (void)viewDidLoad { [super viewDidLoad]; // 画面下部に標準サイズのビューを作成する _bannerView = [[GADBannerView alloc] initWithFrame:CGRectMake(0.0, self.view.frame.size.height - GAD_SIZE_320x50.height, GAD_SIZE_320x50.width, GAD_SIZE_320x50.height)]; // ここで、AdMobパブリッシャーID ではなく AdMobメディエーションID を設定する _bannerView.adUnitID = MY_MEDIATION_ID; // ユーザーに広告を表示した場所に後で復元する UIViewController をランタイムに知らせて // ビュー階層に追加する。 _bannerView.rootViewController = self; _bannerView.delegate = self; [self.view addSubview:_bannerView]; // 一般的なリクエストを行って広告を読み込む。 [_bannerView loadRequest:[GADRequest request]]; } - (void)viewDidUnload { [_bannerView release]; } - (void)dealloc { [super dealloc]; } // 広告の取得が成功したとき -(void)adViewDidReceiveAd:(GADBannerView *)view { //... 処理 } // 広告の取得が失敗したとき -(void)adView:(GADBannerView *)view didFailToReceiveAdWithError:(GADRequestError *)error { //... 処理 } @end
次回は他の広告(i-mobileやAdLantis, AppBank Networkなど)を追加する手順を紹介できればと思います。