バナー広告は、通常あなたアプリ画面の上部か下部に表示されます。数行のコードだけてアプリにバナー広告を追加できます。
バーナー広告をアプリに組み込む前に、入門ガイドの手順を踏んで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)”をクリックして広告ユニットを受け取れます。 わずか数行の簡単な手順でバナーをアプリに追加できます。:
以下のコードは上記の手順全てを網羅しており、画面の下部に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]; }