サイトのトップへ戻る

Twitter 開発者 ドキュメント日本語訳

バナー広告を組み込む

バナー広告は、通常あなたアプリ画面の上部か下部に表示されます。数行のコードだけてアプリにバナー広告を追加できます。



使用条件:

バーナー広告をアプリに組み込む前に、入門ガイドの手順を踏んでMoPub のアカウントを作成し、プロジェクトにSDK を組み込む必要があります。



サンプルコード:

アプリにバナー広告を追加するための完全サンプルについては、MoPub sample appをチェックアウトしてください。 if you’re using the open source SDK or the Cannonball app if you’re using Fabric.



基本的な組み込み

オンラインのダッシュボートのMoPub 上に広告ユニット(広告用のスペース)を作成することができます。最初に画面を開いたとき、あなたのアプリケーションを登録して広告ユニットを設定するよう促されるでしょう。 その後、広告ユニットのページの右上にある“コードスペニットを取得する(Get code snippet)”をクリックして広告ユニットを受け取れます。 わずか数行の簡単な手順でバナーをアプリに追加できます。:

  1. ビューコントローラのヘッダファイルで:
    オープンソースSDKを使用している場合、ヘッダファイル `MPAdView.h` をインポートします。Fabricを使用している場合、`MoPub/MoPub.h`をインポートして`MPAdView *adView` プロパティを宣言します。
    ビューコントローラーが`MPAdViewDelegate` プロトコルを実装することを宣言します。
  2. ビューコントローラの実装ファイルで、`MPAdView`のインスタンスを作成してあなたの広告ユニットIDを引数として渡します。一般的には`-viewDidLoad`内でこの処理を行います。
  3. あなたのビューコントローラを`adView`のデリゲートとして登録します。
  4. `adView`用の frame を設定し、`adView` コントローラのビューの階層に追加します。
  5. iPhone 6 と iPhone 6 plus用アカウントのために、`adView`を画面の中央に設置します。
  6. `-viewControllerForPresentingModalView`メソッドと `MPAdViewDelegate` メソッドを実装します。`adView` はこのビューによって返されるビューコントローラを使用して、タップされた時にmodalsを表示します。通常、コントローラは単に`self`を返すことができます。
  7. 最後に、*-loadAd* メッセージで`adView`を送信して広告を読み込みます。

以下のコードは上記の手順全てを網羅しており、画面の下部に320x50サイズの広告を設置します。 (バナーのサイズを大きくしたい場合は、MPConstants.h内のsizing 定数を参照してください。

重要:オープンソース SDKでは、MRC を使用している場合はこれらのファイルに `-fobjc-arc`のコンパイラフラグを設定する必要があります。ここに記載された説明に従ってください。

// MyViewController.h

#import "MPAdView.h" //If using the open source SDK
#import <MoPub/MoPub.h> //If using Fabric

@interface MyViewController : UIViewController 

@property (nonatomic) MPAdView *adView;

@end
// MyViewController.m

#import "MyViewController.h"

@implementation MyViewController

- (void)viewDidLoad {
    // ... your other -viewDidLoad code ...

    self.adView = [[MPAdView alloc] initWithAdUnitId:@"<YOUR_ADUNIT_ID_HERE>"
                                                 size:MOPUB_BANNER_SIZE];
    self.adView.delegate = self;
    self.adView.frame = CGRectMake((self.view.bounds.size.width - MOPUB_BANNER_SIZE.width) / 2, 
                                  self.view.bounds.size.height - MOPUB_BANNER_SIZE.height,
                                  MOPUB_BANNER_SIZE.width, MOPUB_BANNER_SIZE.height);
    [self.view addSubview:self.adView];
    [self.adView loadAd];
    [super viewDidLoad];
}


#pragma mark - 
- (UIViewController *)viewControllerForPresentingModalView {
    return self;
}

...
@end


追加のデリゲートコールバックを受け取る

*MPAdViewDelegate*にはイベントを通知するのに使用できる様々なオプションコールバックが含まれています。例えば、広告の読み込みに成功した場合や、広告がmodalビューを表示したり終了させたりしようとする時などに発生するイベントなどです。これらメソッドの一覧については、MPAdView.h 内のMPAdViewDelegate プロトコルを参照してください。以下にデリゲートをコールバックする際に役立つ例を記載します。広告のサイズは、しばしば広告ネットワーク間で異なります。; 例えば、 iAdの縦画面でのバナーサイズは 320x50なのに対して、 AdMobでのバナーサイズは320x48です。 新しい広告を受信する度に`adView`を正しくサイズ変更・配置するために、ビューコントローラ内で `-adViewDidLoadAd:` デリゲートコールバックを実装することができます:

- (void)adViewDidLoadAd:(MPAdView *)view
{
    CGSize size = [view adContentViewSize];
    CGFloat centeredX = (self.view.bounds.size.width - size.width) / 2;
    CGFloat bottomAlignedY = self.view.bounds.size.height - size.height;
    view.frame = CGRectMake(centeredX, bottomAlignedY, size.width, size.height);
}


画面回転を制御する

あなたのアプリケーションが画面回転をサポートしている場合、`-rotateToOrientation:`を呼んで`adView`に画面の向きが変わったことを伝えることができます。 いくつかの場合においては(例えばiAdなど) 、広告が画面の回転によってサイズが変わります。こうしたケースを適切に処理するため、サイズ変更と再配置だけでなく画面の向きも伝える必要があります。

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
                                duration:(NSTimeInterval)duration {
    [self.adView rotateToOrientation:toInterfaceOrientation];
}

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    CGSize size = [self.adView adContentViewSize];
    CGFloat centeredX = (self.view.bounds.size.width - size.width) / 2;
    CGFloat bottomAlignedY = self.view.bounds.size.height - size.height;
    self.adView.frame = CGRectMake(centeredX, bottomAlignedY, size.width, size.height);
}


広告を更新する

`MPAdView`は、MoPub ウェブインタフェースから設定した時間間隔ごとに、自動的に広告ユニットを更新します。 `-stopAutomaticallyRefreshingContents` もしくは `-startAutomaticallyRefreshingContents`を呼び出すことで、プログラム上から特定の`MPAdView`の自動更新(auto-refresh)を無効もしくは有効にできます。

広告を手動で更新したい時があるかもしれません。たとえば、あなたのアプリケーションに`UISearchBar`が搭載されており、そこに入力された検索文を広告のターゲットパラメータとして使用したいとします。`-refreshAd`メソッドを使ってそれを実現するための方法を、以下のコード例で示します:

// UISearchBar delegate method. Notifies us when a user has attempted a search.
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
    [self.adView setKeywords:searchBar.text];
    [self.adView refreshAd];
}


ベストプラクティス

  1. バナー広告ビューはユーザーに表示する時だけ作成してください。
  2. ユーザーがバナーのある画面からバナーのない画面に移動した場合、バナービューをビュー階層から削除してください。