バナー - 広告ユニットAPIへの移行 - Unity

このガイドでは、現在の実装から LevelPlay バナー API(広告ユニット ID を使用)へ移行し、バナー広告をロード・表示する方法について説明します。

Before you start
  • サポートされる最小SDKは8.6.0です。最新の SDK はこちらからダウンロードできます。
  • LevelPlay 初期化 API を使用してSDKを初期化してください。詳細はこちらをご覧ください。
  • AdUnitID は LevelPlay ダッシュボードで確認できます。詳細はこちら

バナー広告オブジェクトの作成とサイズ設定

バナー広告オブジェクトの作成は、OnInitSuccess コールバックを受け取った後に行ってください。

// Create the banner object and set the ad unit id 
bannerAd = new LevelPlayBannerAd(bannerAdUnitId);

バナーサイズ

レガシー 広告ユニット(New) dp 単位のサイズ
IronSourceBannerSize LevelPlayAdSize (幅 × 高さ)
BANNER BANNER 320 x 50
LARGE LARGE 320 x 90
RECTANGLE MEDIUM_RECTANGLE 300 x 250
SMART Adaptive Ad Size に置き換え(下記参照) モバイルやタブレットの画面サイズ・向きに自動調整される広告

広告サイズの作成方法は以下のいずれかになります:

画面幅に自動対応するアダプティブバナーサイズ(推奨):
このオプションはデバイス種別により BANNER または LEADERBOARD を返します。アダプティブ機能対応ネットワーク(Google, Yandex等)は最適化ロジックにより高さを返します。

LevelPlayAdSize adSize = LevelPlayAdSize.CreateAdaptiveAdSize();

特定バナーサイズの指定:
この方法ではBANNER、LARGE、MEDIUM_RECTANGLEのサイズを明示的に指定できます。

LevelPlayAdSize adSize = LevelPlayAdSize.BANNER;

プレースメント

バナー広告はプレースメントに対応しており、レポート用途で利用可能です。LoadAd より前に設定することで、全てのリロード広告に適用されます。

// Set the placement name
LevelPlayBannerAd bannerAd = new LevelPlayBannerAd("bannerAdUnitId", LevelPlayAdSize.BANNER, placementName:"placementName");

バナーイベントの実装

LevelPlayBannerAd のイベントをコード内で監視してください。SDK は下記の全てのイベントを通知します。

  • バナー広告のロード前にリスナーを設定することを推奨します。
  • 各バナー広告それぞれにリスナー実装が必要です。
  • コールバックはメインスレッドで実行されます。
// Register to the events 
bannerAd.OnAdLoaded += BannerOnAdLoadedEvent;
bannerAd.OnAdLoadFailed += BannerOnAdLoadFailedEvent;
bannerAd.OnAdDisplayed += BannerOnAdDisplayedEvent;
bannerAd.OnAdDisplayFailed += BannerOnAdDisplayFailedEvent;
bannerAd.OnAdClicked += BannerOnAdClickedEvent;
bannerAd.OnAdCollapsed += BannerOnAdCollapsedEvent;
bannerAd.OnAdLeftApplication += BannerOnAdLeftApplicationEvent;
bannerAd.OnAdExpanded += BannerOnAdExpandedEvent;

// Implement the events
void BannerOnAdLoadedEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdLoadFailedEvent(LevelPlayAdError ironSourceError) {}
void BannerOnAdClickedEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdDisplayedEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdDisplayFailedEvent(LevelPlayAdDisplayInfoError adInfoError) {}
void BannerOnAdCollapsedEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdLeftApplicationEvent(LevelPlayAdInfo adInfo) {}
void BannerOnAdExpandedEvent(LevelPlayAdInfo adInfo) {}
レガシー 広告ユニット(New)
Listener LevelPlayBannerListener LevelPlayBannerAd
Events onAdLoaded OnAdLoaded
onAdLoadFailed OnAdLoadFailed
onAdClicked OnAdClicked
onAdScreenPresented OnAdExpanded
onAdScreenDismissed OnAdCollapsed
onAdLeftApplication OnAdLeftApplication
OnAdDisplayed
OnAdDisplayFailed

LevelPlay Ad Info

Ad Info LevelPlayAdInfo パラメータにはロードされた広告の情報が含まれます。
その実装や利用可能なフィールドの詳細はこちらをご覧ください。

バナー広告のロード

バナー広告のロードには IronSource.loadBanner の代わりに LoadAd を使用してください。

bannerAd.LoadAd();

バナーリフレッシュの一時停止・再開

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

Note: バナーが再度表示されると、停止した時点からリフレッシュまでの残り時間を消化します。
  • pauseAutoRefresh – バナー広告の自動リフレッシュを一時停止します。
  • resumeAutoRefresh – バナー広告の自動リフレッシュを再開します。
// Pause refresh
bannerAd.PauseAutoRefresh();
// Resume refresh
bannerAd.ResumeAutoRefresh();

バナーの表示・非表示

バナーのコンストラクタの一部として、バナーをバックグラウンドでロードし、必要なタイミングで画面に表示できます。ロード後の広告の表示制御には次のAPIを利用します。

  • ShowAd – バナーを画面に表示
  • HideAd – バナーを非表示
// Show ad 
bannerAd.ShowAd(); 
// Hide ad 
bannerAd.HideAd();

ディスプレイカットアウト(Androidのみ)

Android デバイスのディスプレイカットアウトは、カメラ、センサー、スピーカーなどの必須コンポーネント用に確保された指定領域で、スマートフォンやエッジトゥエッジディスプレイを備えたデバイスで一般的に使用されます。このカットアウトによりゲームのビューが制限される可能性があり、画面上のバナーの配置に影響を与える可能性があります。バナー広告とカットアウト領域の重なりを防ぐには、LevelPlayBannerAdを作成し、respectSafeAreaを true に設定してください。

Googleによるディスプレイカットアウト対応の詳細はこちらをご覧ください。

Android カットアウト対応には、respectSafeAreaを true(デフォルトは false )にしてLevelPlayBannerAdを作成してください。

bannerAd = new LevelPlayBannerAd(bannerAdUnitId, respectSafeArea:true);

バナー広告を破棄する

バナーを破棄するには、DestroyAd メソッドを呼び出してください。IronSource.destroyBannerの代わりに使用します。

破棄したバナーは再度表示できません。もう一度広告を表示したい場合は、新たな LevelPlayBannerAd オブジェクトを作成してください。

bannerAd.DestroyAd();

マルチ広告ユニット対応バナー API

レガシー 広告ユニット(New)
Class IronSource LevelPlayBannerAd
API loadBanner LoadAd
destroyBanner DestroyAd
LevelPlayAdSize.Width
LevelPlayAdSize.Height
PauseAutoRefresh
ResumeAutoRefresh
ShowAd
HideAd

バナー広告のフル実装例

下記はアダプティブバナーサイズを使ったバナー広告の作成・ロード例です。

public class BannerAdSample {
    private LevelPlayBannerAd bannerAd;
    void CreateBannerAd() {
        //Create banner instance
        bannerAd = new LevelPlayBannerAd("bannerAdUnitId");
        //Subscribe BannerAd events
        bannerAd.OnAdLoaded += BannerOnAdLoadedEvent;
        bannerAd.OnAdLoadFailed += BannerOnAdLoadFailedEvent;
        bannerAd.OnAdDisplayed += BannerOnAdDisplayedEvent;
        bannerAd.OnAdDisplayFailed += BannerOnAdDisplayFailedEvent;
        bannerAd.OnAdClicked += BannerOnAdClickedEvent;
        bannerAd.OnAdCollapsed += BannerOnAdCollapsedEvent;
        bannerAd.OnAdLeftApplication += BannerOnAdLeftApplicationEvent;
        bannerAd.OnAdExpanded += BannerOnAdExpandedEvent;
    }
    void LoadBannerAd() {
        //Load the banner ad 
        bannerAd.LoadAd();
    }
    void ShowBannerAd() {
        //Show the banner ad, call this method only if you turned off the auto show when you created this banner instance.
        bannerAd.ShowAd();
    }
    void HideBannerAd() {
        //Hide banner
        bannerAd.HideAd();
    }
    void DestroyBannerAd() {
        //Destroy banner
        bannerAd.DestroyAd();
    }
    //Implement BannAd Events
    void BannerOnAdLoadedEvent(LevelPlayAdInfo adInfo) {}
    void BannerOnAdLoadFailedEvent(LevelPlayAdError ironSourceError) {}
    void BannerOnAdClickedEvent(LevelPlayAdInfo adInfo) {}
    void BannerOnAdDisplayedEvent(LevelPlayAdInfo adInfo) {}
    void BannerOnAdDisplayFailedEvent(LevelPlayAdDisplayInfoError adInfoError) {}
    void BannerOnAdCollapsedEvent(LevelPlayAdInfo adInfo) {}
    void BannerOnAdLeftApplicationEvent(LevelPlayAdInfo adInfo) {}
    void BannerOnAdExpandedEvent(LevelPlayAdInfo adInfo) {}
}

完了!

これで新しいマルチ広告ユニット API を使って、アプリケーション内でバナー広告を配信できるようになりました。