iOS のバナー実装

モバイルバナー広告は通常、画面の上部または下部に表示され、ユーザーのセッション中に画面に表示されます。バナー広告は、実装が簡単で、広告主の認知度を高めるための優れたツールであるため、モバイルアプリで非常に人気のある広告ユニットです。
ironSource は、静的またはアニメーションのいずれかである4種類のシステム主導バナー広告を提供します。

Before you start ironSource SDK と追加のアドネットワークアダプターがアプリケーションに正しく実装されていることを確認してください。実装の概要はこちら

注意!バージョン 6.15.0 に関しては、セーフエリアソリューションが ironSource SDK によって提供されません。SDK < 6.15.0 で ironSource バナーソリューションを使用していて、SDK バージョンをアップグレードしたい場合は、必ずこちらの手順に従ってください。

ステップ 1. デリゲートを実装する

ironSource SDK は、バナーアクティビティを通知するためにいくつかのデリゲートメソッドを発火します。SDK は、以下にリストされている発生しうる全てのイベントをデリゲートに通知します:

+ (void)setLevelPlayBannerDelegate:(nullable id<LevelPlayBannerDelegate>)delegate;
#pragma mark - LevelPlayBannerDelegate
/**
 Called after each banner ad has been successfully loaded, either a manual load or banner refresh
 @param adInfo The info of the ad.
 */
- (void)didLoad:(ISBannerView *)bannerView withAdInfo:(ISAdInfo *)adInfo{}

/**
 Called after a banner has attempted to load an ad but failed. 
 This delegate will be sent both for manual load and refreshed banner failures. 
 @param error The reason for the error
 */
- (void)didFailToLoadWithError:(NSError *)error{}

/**
 Called after a banner has been clicked.
 @param adInfo The info of the ad.
 */
- (void)didClickWithAdInfo:(ISAdInfo *)adInfo{}

/**
 Called when a user was taken out of the application context.
 @param adInfo The info of the ad.
 */
- (void)didLeaveApplicationWithAdInfo:(ISAdInfo *)adInfo{}

/**
 Called when a banner presented a full screen content.
 @param adInfo The info of the ad.
 */
- (void)didPresentScreenWithAdInfo:(ISAdInfo *)adInfo{}

/**
 Called after a full screen content has been dismissed.
 @param adInfo The info of the ad.
 */
- (void)didDismissScreenWithAdInfo:(ISAdInfo *)adInfo{}

リスナーの完全な実装については、こちらで確認できます。

Note: デリゲートメソッドがメインスレッドコンテキストで呼び出されることは想定しないでください。

ステップ 2. バナー広告をロードする

バナー広告をロードするには、次のメソッドを呼びます:

  • このメソッドを呼んでバナービューを初期化します(この例では、BANNER バナーサイズです):
    [IronSource loadBannerWithViewController:self size:ISBannerSize_BANNER];
    IronSource.loadBanner(with: self, size: ISBannerSize(description: "BANNER",width:320 ,height:50))

    サポートされている標準バナーサイズの詳細については、以下の表を参照してください:

    ISBannerSize Description Dimensions in points (WxH)
    ISBannerSize_BANNER Standard Banner 320 x 50
    ISBannerSize_LARGE Large Banner 320 x 90
    ISBannerSize_RECTANGLE Medium Rectangular (MREC) 300 x 250
    ISBannerSize_SMART
    Smart Banner
    ( iPhone と iPad に合わせてサイズとオリエンテーションを自動調整してレンダリング)
    If (iPhone ≤ 720) 320 x 50
    If (iPad > 720) 728 x 90
  • 別の方法は、このシグネチャ(ポイント単位の WxH )を使用して、カスタムサイズでバナーを配信することです:
    [IronSource loadBannerWithViewController:self size:[[ISBannerSize alloc] initWithWidth:320 andHeight:50];
    IronSource.loadBanner(with: self, size: ISBannerSize(width: 320, andHeight: 50))

ステップ 3. セーフエリアレイアウトの実装

セーフエリアとは、iOS11 の一部として導入されたレイアウトガイドを指し、iOS アプリケーションで許可されるビューの位置を定義します。これにより、アプリケーションがナビゲーションやタブバーなどの祖先ビューをカバーしないようになります。

セーフエリアの実装:

以下は、bannerDidLoad メソッドでバナーを初期化してロードする例です:

- (void)bannerDidLoad:(ISBannerView *)bannerView {
   NSLog(@"%s",__PRETTY_FUNCTION__);
   dispatch_async(dispatch_get_main_queue(), ^{
       self.bannerView = bannerView;
       if (@available(iOS 11.0, *)) {
           [self.bannerView setCenter:CGPointMake(self.view.center.x,self.view.frame.size.height - (self.bannerView.frame.size.height/2.0) - self.view.safeAreaInsets.bottom)]; // safeAreaInsets is available from iOS 11.0
       } else {
           [self.bannerView setCenter:CGPointMake(self.view.center.x,self.view.frame.size.height - (self.bannerView.frame.size.height/2.0))];
       }
       [self.view addSubview:self.bannerView];
   });
}

ステップ 4. 追加のロード設定

Unity LevelPlay ダッシュボードでのバナーのプレースメント、ペーシング、キャッピングをサポートしています。アプリのユーザー体験を最適化するために、バナーのプレースメント、キャッピング、ペーシングを設定する方法については、こちらをご覧ください。

バナーのプレースメントを設定した場合は、次のメソッドを呼んで、特定のプレースメントのバナー広告を配信します:

[IronSource loadBannerWithViewController:self size:ISBannerSize_BANNER placement:placement];
IronSource.loadBanner(with: YOUR_VIEW_CONTROLLER, size: YOUR_BANNER_SIZE, placement: YOUR_PLACEMENT_NAME)
Note: SDK は一度に複数のバナーを表示しません

ステップ 5. バナー広告を破棄する

バナーを破棄するには、次のメソッドを呼びます:

[IronSource destroyBanner: bannerView];
IronSource.destroyBanner(YOUR_IRONSOURCE_BANNER)

破棄されたバナーはロードできなくなります。もう一度提供したい場合は、初期化し直す必要があります。

ステップ 6. バナープロバイダーを実装する

次に、アドネットワークアダプターを統合して、Unity LevelPlay を介してバナーを配信します。
サポートされているネットワークと、各ネットワークの bannerSize の動作は以下をご覧ください:

BANNER LARGE RECTANGLE SMART
ironSource Banner Large Medium Rectangle Banner / Leaderboard
AdColony Banner Banner Medium Rectangle Banner / Leaderboard
AdMob Banner Large* Medium Rectangle Banner / Leaderboard
Amazon Banner
Banner Banner Leaderboard **
AppLovin Banner Banner Medium Rectangle Banner / Leaderboard
Chartboost Banner Banner Medium Rectangle Banner / Leaderboard
Meta Audience
Network
Banner Large Medium Rectangle Banner / Leaderboard
Digital Turbine Banner Banner Medium Rectangle Banner / Leaderboard
HyprMX Banner Medium Rectangle Banner / Leaderboard
InMobi Banner Banner Medium Rectangle Banner / Leaderboard
UnityAds Banner Banner Leaderboard
Vungle Banner Banner Medium Rectangle Banner / Leaderboard

バナーサイズリファレンス:

  • Banner:  320 X 50
  • Large Banner:  320×90   
  • Medium Rectangle (MREC): 300×250 
  • LeaderBoard: 728X90  

* AdMob は Large を 320X100 と定義しています
** Amazon は Leaderboard を 728X50 と定義しています

ステップ 7. アダプティブバナー

アダプティブバナー機能により、広告の幅と画面サイズに基づいて最適なバナーサイズを受け取ることができます。

この機能を使用すると、アダプティブバナー (現在は AdMob とアド マネージャー) をサポートするネットワークはバナーサイズに基づいて最適な高さの広告を返します。
他のすべてのネットワークは、指定された広告サイズに従ってバナーを配信します。

  1. バナーサイズを定義する際に「 adaptive 」フラグを追加
    ISBannerSize.adaptive=YES;

  2. ロード成功デリゲート bannerDidLoad の一部として、ロードバナー広告とリフレッシュバナー広告の両方の広告サイズを受け取り、アプリでバナービューを調整出来ます。
  3. Note:
    1. デリゲートの ISBannerView パラメーターで更新されたバナーサイズが確認出来ます。また、このサイズはリフレッシュの際に変更される可能性があります。
    2. アダプティブバナーは渡された Width に対して最適化されたサイズのバナーを表示します。

    完了!
    これで、アプリケーションでバナーを配信する設定が出来ました。Integration Helper を使用して実装を確認してください。


    次のステップは?

    実装ガイドに従って、追加の広告ユニットを実装します:

    より多くのメディエーションアダプターを実装したいですか?こちらでサポートされているメディエーションネットワークを確認してください。