iOS のバナー実装

バナーは、静的またはアニメーション化できる長方形のシステム主導広告であり、ライブアプリコンテンツの周囲の指定された領域に配信されます。

Before you start
  • ironSource SDK がアプリケーションに正しく実装されていることを確認してください。実装の概要はこちら
  • LevelPlay Initialization API を使用して SDK を初期化してください。
  • AdUnitID は LevelPlay ダッシュボードで確認できます。詳細はこちら
  • このドキュメントは SDK 8.4.0+ に対応するものです。レガシーバナー API (SDK 8.4.0 以前) のドキュメントはこちら

バナー広告オブジェクトを作成し、サイズを設定する

バナー広告ユニットを作成し、バナーサイズを設定します。バナーオブジェクトの作成は、onInitSuccess を受信した後に行う必要があります。

// Create the banner view and set the ad unit id 
self.bannerAdView = [[LPMBannerAdView alloc] initWithAdUnitId:@"adUnitId"];
// Create the banner ad view object with required params 
self.bannerAdView = LPMBannerAdView(adUnitId: "adUnitId")

バナーサイズ

LPMAdSize Description Dimensions in dp
(Width X Height)
bannerSize Standard banner 320 x 50
largeSize Large banner 320 x 90
mediumRectangleSize Medium Rectangular (MREC) 300 x 250
Adaptive 広告を自動的にレンダリングして、モバイルやタブレット向けにサイズと方向を調整します
(レガシーサイズ「SMART」の置き換え)
デバイスの幅 X 推奨される高さ

次のいずれかのオプションに従って広告サイズを作成します:

画面の幅に合わせて調整されるアダプティブ広告サイズ (推奨):

このオプションは、デバイスタイプに応じて BANNER または LEADERBOARD を返します。
アダプティブ機能をサポートするネットワーク (Google、Yandex) は、最適化ロジックに基づいて高さを返します。

LPMAdSize *bannerSize = [LPMAdSize createAdaptiveAdSize];
[self.bannerAdView setAdSize: bannerSize];
let bannerSize = LPMAdSize.createAdaptive()
self.bannerAdView.setAdSize(bannerSize)

特定のバナーサイズ:
このオプションを使用すると、バナーサイズ (BANNER、LARGE、MEDIUM_RECTANGLE) を指定できます。

LPMAdSize *bannerSize = [LPMAdSize largeSize];
[self.bannerAdView setAdSize: bannerSize];
let bannerSize = LPMAdSize.large()
self.bannerAdView.setAdSize(bannerSize)

Placement

プレースメントはレポートに使用されるオプションです。すべてのリロードに設定を反映させるには、ロード前に設定する必要があります。

[self.bannerAdView setPlacementName:@"PlacementName"];
self.bannerAdView.setPlacementName("PlacementName")

バナーデリゲートを実装する

LPMBannerAdViewDelegate を実装します。

  • バナー広告のロード前にデリゲートを設定することをお勧めします。
  • 各バナー広告にデリゲート実装が必要であることに注意してください。
  • コールバックはメインスレッドで実行されます。
  • すべてのネットワークでサポートされていないコールバックは、Optional(任意)とマークされています。
// Set delegate implementation 
[self.bannerAdView setDelegate:self]
#pragma mark - LPMBannerAdViewDelegate
- (void)didLoadAdWithAdInfo:(nonnull LPMAdInfo *)adInfo {
   //Ad was loaded successfully
}
- (void)didFailToLoadAdWithAdUnitId:(nonnull NSString *)adUnitId error:(nonnull NSError *)error { 
   // Ad load failed
}
- (void)didClickAdWithAdInfo:(LPMAdInfo *)adInfo {
   // Ad was clicked
}
- (void)didDisplayAdWithAdInfo:(LPMAdInfo *)adInfo {
   // Ad was displayed and visible on screen
}
- (void)didFailToDisplayAdWithAdInfo:(LPMAdInfo *)adInfo error:(NSError *)error {
   // Optional. Ad was failed to be displayed on screen
}
- (void)didLeaveAppWithAdInfo:(LPMAdInfo *)adInfo {
   // Optional. User pressed on the ad and was navigated out of the app 
}
- (void)didExpandAdWithAdInfo:(LPMAdInfo *)adInfo {
   // Optional. Ad is opened on full screen
}
- (void)didCollapseAdWithAdInfo:(LPMAdInfo *)adInfo {
   // Optional. Ad is restored to its original size
}
// Set delegate implementation 
self.bannerAdViewView.setDelegate(self)
func didLoadAd(with adInfo: LPMAdInfo) {
   //Ad was loaded successfully 
}
func didFailToLoadAd(withAdUnitId adUnitId: String, error: Error) {
   // Ad load failed
}
func didClickAd(with adInfo: LPMAdInfo) {
   // Ad was clicked
}
func didDisplayAd(with adInfo: LPMAdInfo) {
   // Ad was displayed and visible on screen
}
func didFailToDisplayAd(with adInfo: LPMAdInfo, error: Error) {
   // Optional. Ad was failed to be displayed on screen
}
func didLeaveApp(with adInfo: LPMAdInfo) {
   // Optional. User pressed on the ad and was navigated out of the app 
}
func didExpandAd(with adInfo: LPMAdInfo) {
   // Optional. Ad is opened on full screen
}
func didCollapseAd(with adInfo: LPMAdInfo) {
   // Optional. Ad is restored to its original size
}

LevelPlay Ad Info

Ad Info LevelPlayAdInfo パラメーターは読み込みに成功した広告の情報を含んでいます。
LevelPlay Ad Info の実装と利用可能なフィールドの詳細については、こちらをご覧ください。

バナー広告をロードする

バナー広告をロードするには、LoadAd メソッドを呼びます。

バナーの更新を一時停止および再開する

プラットフォームでリフレッシュレートが定義されている場合は、コードでバナーのリフレッシュを一時停止できます。バナー広告の自動リフレッシュを一時停止・再開するには、次の方法を使用します。

Note: バナーが再度表示されると、一時停止されてからの時間を元にリロードされます。
  • pauseAutoRefresh – バナーの自動リフレッシュを一時停止
  • resumeAutoRefresh – 一時停止されたバナーの自動リフレッシュを再開
// Pause refresh
[self.bannerAdView pauseAutoRefresh]; 
// Resume refresh
[self.bannerAdView resumeAutoRefresh];
// Pause refresh
self.bannerAdView.pauseAutoRefresh()
// Resume refresh
self.bannerAdView.resumeAutoRefresh()

バナー広告を破棄する

バナーを破棄するには、destroy メソッドを呼びます。破棄されたバナーはロードできなくなります。もう一度提供したい場合は、新しい LPMBannerAdView オブジェクトを作成する必要があります。

[self.bannerAdView destroy];
self.bannerAdViewView.destroy()

広告の作成とロードの実装例

以下に、アダプティブバナーサイズを使用してバナー広告を作成してロードする例を紹介します。

NS_ASSUME_NONNULL_BEGIN
@interface BannerAdViewController () <LPMBannerAdViewDelegate>
@property(nonatomic, strong) LPMBannerAdView *bannerAd;
@end
@implementation BannerAdViewController
- (void)dealloc {
    [self.bannerAd destroy];
}
- (void)createBannerAd {
    // Create the banner view and set the ad unit id
    self.bannerAd = [[LPMBannerAdView alloc] initWithAdUnitId:@"adUnitId"];
    
    // Set the placement name (optional)
    [self.bannerAd setPlacementName:@"PlacementName"];
    
    // Set the ad size
    LPMAdSize *bannerSize = [self getBannerSize];
    
    // Required when using adaptive ad size
    if (bannerSize == nil) {
        return;
     }
    
    [self.bannerAd setAdSize:bannerSize];
    
    // Set the delegate implementation
    [self.bannerAd setDelegate:self];
    
    // Add the banner view to the view hierarchy with the proper constraints
    [self addBannerViewWithSize:bannerSize];
}
- (LPMAdSize *)getBannerSize {
    // 1. Recommended - Adaptive ad size that adjusts to the screen width
    LPMAdSize *bannerSize = [LPMAdSize createAdaptiveAdSize];
    // 2. Adaptive ad size using fixed width ad size
    // self.bannerSize = [LPMAdSize createAdaptiveAdSizeWithWidth:400];
    // 3. Specific banner size - BANNER, LARGE, MEDIUM_RECTANGLE
    // self.bannerSize = [LPMAdSize mediumRectangleSize];
    
    return bannerSize;
}
- (void)loadBannerAd {
    [self.bannerAd loadAdWithViewController:self];
}
- (void)addBannerViewWithSize:(LPMAdSize *)bannerSize {
    self.bannerAd.translatesAutoresizingMaskIntoConstraints = NO;
    
    // Add the banner view to the view hierarchy
    [self.view addSubview:self.bannerAd];
    [NSLayoutConstraint activateConstraints:@[
        [self.bannerAd.bottomAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.bottomAnchor],
        [self.bannerAd.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor],
        [self.bannerAd.widthAnchor constraintEqualToConstant:bannerSize.width],
        [self.bannerAd.heightAnchor constraintEqualToConstant:bannerSize.height]
    ]];
}
#pragma mark - LPMBannerAdViewDelegate
- (void)didLoadAdWithAdInfo:(nonnull LPMAdInfo *)adInfo {}
- (void)didFailToLoadAdWithAdUnitId:(nonnull NSString *)adUnitId error:(nonnull NSError *)error {}
- (void)didClickAdWithAdInfo:(LPMAdInfo *)adInfo {}
- (void)didDisplayAdWithAdInfo:(LPMAdInfo *)adInfo {}
- (void)didFailToDisplayAdWithAdInfo:(LPMAdInfo *)adInfo error:(NSError *)error {}
- (void)didLeaveAppWithAdInfo:(LPMAdInfo *)adInfo {}
- (void)didExpandAdWithAdInfo:(LPMAdInfo *)adInfo {}
- (void)didCollapseAdWithAdInfo:(LPMAdInfo *)adInfo {}
@end
NS_ASSUME_NONNULL_END
import UIKit
class BannerAdViewController: UIViewController, LPMBannerAdViewDelegate {
    var bannerAd: LPMBannerAdView!
    deinit {
        self.bannerAd.destroy()
    }
    func createBannerAd() {
        // Create the banner view and set the ad unit id
        self.bannerAd = LPMBannerAdView(adUnitId: "adUnitId")
        
        // Set the placement name (optional)
        self.bannerAd.setPlacementName("PlacementName")
        
        // Set the ad size
        // Null check required when using adaptive ad size
        guard let bannerSize = getBannerSize() else {
            return
        }
        self.bannerAd.setAdSize(bannerSize)
        
        // Set the delegate implementation
        self.bannerAd.setDelegate(self)
        
        // Add the banner view to the view hierarchy with the proper constraints
        addBannerView(withSize: bannerSize)
    }
    func getBannerSize() -> LPMAdSize? {
        // 1. Recommended - Adaptive ad size that adjusts to the screen width
        let bannerSize = LPMAdSize.createAdaptive()
        // 2. Adaptive ad size using fixed width ad size
        // bannerSize = LPMAdSize.createAdaptiveAdSize(withWidth: 400)
        // 3. Specific banner size - BANNER, LARGE, MEDIUM_RECTANGLE
        // bannerSize = LPMAdSize.mediumRectangleSize()
        
        return bannerSize
    }
    func loadBannerAd() {
        self.bannerAd.loadAd(with: self)
    }
    func addBannerView(withSize bannerSize: LPMAdSize) {
        DispatchQueue.main.async {
            self.bannerAd.translatesAutoresizingMaskIntoConstraints = false
            self.view.addSubview(self.bannerAd)
            let centerX = self.bannerAd.centerXAnchor.constraint(equalTo: self.view.centerXAnchor)
            let bottom = self.bannerAd.bottomAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.bottomAnchor)
            let width = self.bannerAd.widthAnchor.constraint(equalToConstant: CGFloat(bannerSize.width))
            let height = self.bannerAd.heightAnchor.constraint(equalToConstant: CGFloat(bannerSize.height))
            NSLayoutConstraint.activate([centerX, bottom, width, height])
        }
    }
    // MARK: - LPMBannerAdViewDelegate
    func didLoadAd(with adInfo: LPMAdInfo) {}
    func didFailToLoadAd(withAdUnitId adUnitId: String, error: Error) {}
    func didClickAd(with adInfo: LPMAdInfo) {}
    func didDisplayAd(with adInfo: LPMAdInfo) {}
    func didFailToDisplayAd(with adInfo: LPMAdInfo, error: Error) {}
    func didLeaveApp(with adInfo: LPMAdInfo) {}
    func didExpandAd(with adInfo: LPMAdInfo) {}
    func didCollapseAd(with adInfo: LPMAdInfo) {}
}

LevelPlay メディエーションデモアプリ

実装デモアプリでは、バナー広告ユニット API をアプリに実装する方法を確認できます。

iOS デモアプリダウンロード

完了!
これで、アプリケーションでバナーを配信するように設定されました。Test Suite を使用してインテグレーションを確認します。


次のステップは?

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