【iOSアプリ開発】SampleiAd作成手順

現在開発中のiOSアプリに広告を入れようとする際、その方法やメディエーションはいくつか選択肢があります。

その中でもApple純正メディエーションiAdの導入方法を今回はご紹介したいと思います。

iAdって何?と思われた方は下記リンクを御覧ください。
http://ja.wikipedia.org/wiki/IAd

  • 前提:SingleViewApplicationを選択して作成したプロジェクトであること

 

1.プロジェクトにiAdフレームワークを追加

  • 左のツリー表示から青いプロジェクトファイルを選択
  • Linked Frameworks and Librariesにて『+』ボタンをクリック
  • 現れたウィンドウ上の検索パネル「iAd」と検索し、Addボタンで追加

72c6f80e-1d2e-d0c0-ceec-50afe7d5e8b8

 

 

2.ViewController.h に 2点追加

  • #import <iAd/iAd.h>
  • <ADBannerViewDelegate>

こんな形になります。

ViewController.h
#import <UIKit/UIKit.h>
#import <iAd/iAd.h>

@interface ViewController :UIViewController

@end

3.メンバ変数 _adView を追加

ViewController.m
#import "ViewController.h"

@interface ViewController ()
{
    ADBannerView *_adView; //<-追加
}

@end

 

4.ViewDidLoadの中にバナーを画面上部に隠しておく形で設置するコードを記述

ViewController.m

- (void)viewDidLoad {
    [super viewDidLoad];

    //初期化
    _adView = [[ADBannerView alloc] init];

    //場所を決定
    _adView.frame = CGRectMake(0, -_adView.frame.size.height, _adView.frame.size.width, _adView.frame.size.height);


    _adView.alpha = 0.0;
    _adView.delegate = self;

    //画面本体に追加
    [self.view addSubview:_adView];
}

5.バナー表示が成功したら発動するDelegateメソッドbannerViewDidLoadAdをViewDidLoad下に追加

ViewController.m
//バナーが表示される時発動するメソッド
-(void)bannerViewDidLoadAd:(ADBannerView *)banner
{

    [UIView beginAnimations:@"animateAdBannerOn" context:nil];

    [UIView setAnimationDuration:0.3];

    banner.frame = CGRectOffset(banner.frame, 0, 20);

    banner.alpha = 1.0;

    [UIView commitAnimations];


}

 

6.バナー表示が失敗した時に発動するDelegateメソッドdidFailToReceiveAdWithErrorもbannerViewDidLoadAd下に追加

ViewController.m
//バナー表示でエラーが発生した場合
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    [UIView beginAnimations:@"animateAdBannerOff" context:nil];

    [UIView setAnimationDuration:0.3];

    banner.frame = CGRectOffset(banner.frame, 0, -CGRectGetHeight(banner.frame));
        banner.alpha = 0.0;
    [UIView commitAnimations];

}

 

7.バナーが画面上に表示されているか否かを判別するフラグ_isVisibleをメンバ変数で用意

ViewController.m
#import "ViewController.h"

@interface ViewController ()
{
    ADBannerView *_adView;
    BOOL _isVisible; //追加
}

@end

@implementation ViewController

 

8. viewDidLoadではまだバナー表示されていないためNOを設定しておく

ViewController.m
- (void)viewDidLoad {
    [super viewDidLoad];

    //初期化
    _adView = [[ADBannerView alloc] init];

    //場所を決定
    _adView.frame = CGRectMake(0, -_adView.frame.size.height, _adView.frame.size.width, _adView.frame.size.height);


    _adView.alpha = 0.0;
    _adView.delegate = self;

    //画面本体に追加
    [self.view addSubview:_adView];

    //まだ表示されていない
    _isVisible = NO;  //←追加行1☆☆☆
}

 

9. bannerViewDidLoadAdに_isVisibleを判別し、表示されていない時だけ表示する処理が実行されるようなif文を追加

  • 表示処理後は_isVisible = YESにセット
ViewController.m
//バナーが表示される時発動するメソッド
-(void)bannerViewDidLoadAd:(ADBannerView *)banner
{
   if(!_isVisible){ //←追加行1☆☆☆

    [UIView beginAnimations:@"animateAdBannerOn" context:nil];

    [UIView setAnimationDuration:0.3];

    banner.frame = CGRectOffset(banner.frame, 0, 20);

    banner.alpha = 1.0;

    [UIView commitAnimations];

    //表示したのでisVisibleをYESにする
    _isVisible = YES; //←追加行2☆☆☆
  } //←追加行3☆☆☆

}

 

10. didFailToReceiveAdWithErrorに_isVisibleを判別し、表示されている時だけ非表示にする処理が実行されるようなif文を追加

ViewController.m
//バナー表示でエラーが発生した場合
-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
    //バナーが表示されていたら、非表示にする
    if (_isVisible) { //←追加行1☆☆☆
        [UIView beginAnimations:@"animateAdBannerOff" context:nil];

        [UIView setAnimationDuration:0.3];

        banner.frame = CGRectOffset(banner.frame, 0, -CGRectGetHeight(banner.frame));
        banner.alpha = 0.0;
        [UIView commitAnimations];

         //非表示したのでisVisibleをNOにする
        _isVisible = NO; //←追加行2☆☆☆
    } //←追加行3☆☆☆

}

 

NexSeedでは、プログラミングと英語を学べる「エンジニア留学」を提供しています。 プログラミングと英語、エンジニア/ IT留学に興味がある方は以下からチェック!

投稿者プロフィール

NexSeedメディア編集部
NexSeedメディア編集部
NexSeedメディア編集部です。英語学習について、フィリピン・セブ島の魅力、NexSeedでの留学生活などを伝えます!

記事に関するお問い合わせはこちらのメールアドレスにお願いします(・∀・)
ns-support@nexseed.net