2013年9月22日日曜日

iOS Admob 簡単導入

iOSでAdmobを導入する方法です。

こちらのアプリ(Colomemo) で実際に試している方法です。
無料ですので, 是非試してみてくださいな。
Admobはバージョンによって結構違ってくるので, その都度調べなおすのがまあまあ面倒です。

Versionは, 6.5.1です。 このエントリーは, 筆者の別のブログ, iOS Admob(導入編), iOS Admob(表示されなかった場合の処理) の合併号のようなものです。 今回の目的は, 表示すること, ネットに接続されていない場合にスペースが余るのを回避することです

ステップ

  1. GoogleAdMobAdsSdkiOSをダウンロード
  2. 依存関係ライブラリ(Framework)を追加
  3. Liner flagを追加
  4. AdmobのWebサイトでIDを発行してもらう
  5. GADBannarViewの設置
  6. GADBannerViewDelegateの実装

GoogleAdMobAdsSdkiOSをダウンロード

GoogleAdMobAdsSdkiOS.zipをGoogleよりダウンロードして解凍します。libGoogleAdMOobAds.aおよび, .h ヘッダー達を使いたい プロジェクトにコピーして.a はリンクします。

解凍すると, thirdparty がどうとかいうディレクトリがありますが今回は使いません。

依存関係ライブラリ(Framework)を追加

必要なFrameworkを追加します。 ドキュメントによると以下のFrameworkが必要です
  • AudioToolbox
  • MessageUI
  • SystemConfiguration
  • CoreGraphics
実際にリンクしてみて追加しなくてはならなかったもの(使ってないと思うんだけど)
  • AdSupport
  • StoreKit

Liner flagを追加

これをやらないとコンパイルが通りません。 Targetの”Other Liner Flags“に, -ObjCを追加します。

AdmobのWebサイトでIDを発行してもらう

必要なものは, パブリッシャー IDです。アプリケーションを追加してこれを入手してください。 サイトURLなどは必要ないので空欄でいいのです。(登録に関しては省略) (Googleアカウントもしくはadmobアカウントが必要です)

GADBannarViewの設置

さて今回は, サンプルに従ってボトムにバナーを表示させてみましょう。
必要なヘッダ
#import "GADBannerView.h"
本体
@interface ViewController ()
@property(nonatomic, readwrite)GADBannerView *bannerView;
@end
 
@implementation ViewController
 
- (void)viewDidLoad
{
   [super viewDidLoad];
   [self initAd];
}
 
-(void)initAd {
    self.bannerView = [[GADBannerView alloc]
                   initWithFrame:CGRectMake(0.0,
                                            self.view.frame.size.height -
                                            GAD_SIZE_320x50.height,
                                            GAD_SIZE_320x50.width,
                                            GAD_SIZE_320x50.height)];
    self.bannerView.adUnitID = kADUNITID;
    self.bannerView.rootViewController = self;
    [self.view addSubview:self.bannerView];
}
kADUNITIDというのがパブリッシャーID(文字列です)です。これだけで表示されます。

GADBannerViewDelegateの実装

Admobは, web広告ですので, もちろんネットにつながっていないと,当然表示されません。 デザインなどで, 広告が表示されない場合にぽっかりスペースが空くのはなんかしのびありません。 そこで, 表示される場合と, 表示されない場合の挙動を変更するように直します。 GADBannerViewDelegate というのがこの機能を提供しています。 広告を表示するUIを使うクラスにGADBannerViewDelegateをimplementsします。
ViewController
@interface ViewController : UIViewController
 
@end
GADBannerView にdelegateをset
[self.bannerView setDelegate:self];
self.bannerViewは,GADBannerViewです。
実装
- (void)adViewDidReceiveAd:(GADBannerView *)bannerView {
    // Success
}
 
 
- (void)adView:(GADBannerView *)view didFailToReceiveAdWithError:(GADRequestError *)error {
    // Fail
}
成功した場合がadViewDidReceiveAd, 失敗したときがdidFailToReceiveAdWithErrorです。 筆者はここで, UIのサイズなどを調整したりしています。

0 件のコメント:

コメントを投稿