Android のインタースティシャル実装

Unity LevelPlay インタースティシャルはフルスクリーンの広告ユニットであり、通常はアプリのライフサイクル中の自然な移行ポイントで配信されます。

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

インタースティシャル広告オブジェクトを作成する

インタースティシャル広告ユニットを作成します。インタースティシャルオブジェクトの作成は、OnInitSuccess コールバックを正常に受信した後に行う必要があります。

LevelPlayInterstitialAd mInterstitialAd = new LevelPlayInterstitialAd("adUnitId");
val mInterstitialAd = LevelPlayInterstitialAd("adUnitId")

リスナーを実装する

LevelPlayInterstitialAdListener を実装して、広告配信に関する情報を取得します。

  • インタースティシャル広告のロード前にリスナーを設定することをお勧めします。
  • 各インタースティシャル広告にリスナー実装が必要であることに注意してください。
  • コールバックはメインスレッドで実行されます。
// Create the interstitial ad 
LevelPlayInterstitialAd mInterstitialAd = new LevelPlayInterstitialAd("adUnitId");
mInterstitialAd.setListener(new LevelPlayInterstitialAdListener() {
    @Override
    public void onAdLoaded(LevelPlayAdInfo levelPlayAdInfo) {
        // Ad was loaded successfully
    }
    @Override
    public void onAdLoadFailed(LevelPlayAdError levelPlayAdError) {
        // Ad load failed 
    }
    @Override
    public void onAdDisplayed(LevelPlayAdInfo levelPlayAdInfo) {
        // Ad was displayed and visible on screen
    }
    @Override
    public void onAdDisplayFailed(LevelPlayAdError levelPlayAdError, LevelPlayAdInfo levelPlayAdInfo) {
        // Ad fails to be displayed
        // Optional
    }
    @Override
    public void onAdClicked(LevelPlayAdInfo levelPlayAdInfo) {
        // Ad was clicked
        // Optional
    }
    @Override
    public void onAdClosed(LevelPlayAdInfo levelPlayAdInfo) {
        // Ad was closed
        // Optional
    }
    @Override
    public void onAdInfoChanged(LevelPlayAdInfo levelPlayAdInfo) {
        // Called after the ad info is updated. Available when another interstitial ad has loaded, and includes a higher CPM/Rate
        // Optional
    }
});
// Create the interstitial ad unit 
val mInterstitialAd = LevelPlayInterstitialAd("adUnitId")
mInterstitialAd.setListener(object : LevelPlayInterstitialAdListener {
    override fun onAdLoaded(levelPlayAdInfo: LevelPlayAdInfo) {
        // Ad was loaded successfully
    }
    override fun onAdLoadFailed(levelPlayAdError: LevelPlayAdError) {
        // Ad load failed
    }
    override fun onAdDisplayed(levelPlayAdInfo: LevelPlayAdInfo) {
        // Ad was displayed and visible on screen
    }
    override fun onAdDisplayFailed(levelPlayAdError: LevelPlayAdError, levelPlayAdInfo: LevelPlayAdInfo) {
        // Ad fails to be displayed
        // Optional
    }
    override fun onAdClicked(levelPlayAdInfo: LevelPlayAdInfo) {
        // Ad was clicked
        // Optional
    }
    override fun onAdClosed(levelPlayAdInfo: LevelPlayAdInfo) {
        // Ad was closed
        // Optional
    }
    override fun onAdInfoChanged(levelPlayAdInfo: LevelPlayAdInfo) {
        // Called after the ad info is updated. Available when another interstitial ad has loaded, and includes a higher CPM/Rate
        // Optional
    }
})

LevelPlay Ad Info

Ad Info LevelPlayAdInfo パラメーターは読み込みに成功した広告の情報を含んでいます。
インタースティシャルリスナーコールバックによって返される ISAdInfo クラスは、LPMAdInfo に置き換えられました。
利用可能なフィールドの詳細については、こちらをご覧ください。

インタースティシャル広告をロードする

インタースティシャル広告をロードするには、LoadAd メソッドを呼びます。

mInterstitialAd.loadAd();
mInterstitialAd.loadAd()

インタースティシャル広告を表示する

LevelPlayInterstitialAdListeneronAdLoaded コールバックを受信したら、インタースティシャル広告を表示します。

  • Activity の共有が必要です。
  • プレースメントを使用している場合は、ShowAd API の一部として追加します。
  • 広告がユーザーに正常に表示されたら、ロード手順を繰り返すことで別の広告を読み込むことができます。
public void showInterstitialAd() {
    // Check that ad is ready
    if (mInterstitialAd.isAdReady()) {
        // Show ad
        mInterstitialAd.showAd(this);
    }
}
fun showInterstitialAd() {
    // Check that ad is ready
    if (mInterstitialAd.isAdReady()) {
        // Show ad
        mInterstitialAd.showAd(this)
    }
}

広告のアベイラビリティを確認する

表示の失敗を回避し、広告が正しく表示されることを確認するには、showAd() API を呼び出す前に次の API を使用することをお勧めします。

isAdReady – 広告が正常に読み込まれ、広告ユニットに対するキャップが設定されていない場合、または視聴回数が広告ユニットに対して設定されたキャップに達していない場合は true を返し、それ以外の場合は false を返します。

isPlacementCapped – 有効なプレースメントに対する視聴回数がキャップに達している場合は true を返します。プレースメント名が有効でない場合、キャップが設定されていない場合、または視聴回数がプレースメントに対して設定されたキャップに達していない場合、この API は false を返します。

// Check that ad is ready and that the placement is not capped 
if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) {
    mInterstitialAd.showAd(this, placementName);
}
// Check that ad is ready and that the placement is not capped
if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) {
    mInterstitialAd.showAd(this, placementName)
}

プレースメント

LevelPlay ダッシュボードでインタースティシャルのプレースメント、ペーシング、キャッピングをサポートしています。

インタースティシャル広告のプレースメントを設定している場合は、showAdメソッドを呼び出して、特定のプレースメントに対してインタースティシャル広告を配信します。

public void showInterstitialAdWithPlacement() {
    // Check that ad is ready and that the placement is not capped 
    if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) {
        // Show ad with placement 
        mInterstitialAd.showAd(this, placementName);
    }
}
fun showInterstitialAdWithPlacement(placementName: String) {
    // Check that ad is ready and that the placement is not capped
    if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) {
        // Show ad with placement
        mInterstitialAd.showAd(this, placementName)
    }
}

インタースティシャル広告の実装例

public class InterstitialAdActivity extends Activity implements LevelPlayInterstitialAdListener { 
    private LevelPlayInterstitialAd mInterstitialAd;
    void createInterstitialAd() { 
        mInterstitialAd = new LevelPlayInterstitialAd("adUnitId"); 
        mInterstitialAd.setListener(this); 
    } 
    void loadInterstitialAd() { 
        // Used to load or reload the ad 
        mInterstitialAd.loadAd(); 
    } 
    void showInterstitialAd() { 
        if (mInterstitialAd.isAdReady()) { 
            mInterstitialAd.showAd(this); 
        }
    }
    void showInterstitialAd(@NonNull String placementName) { 
        // Check that ad is ready and that the placement is not capped 
        if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) { 
            mInterstitialAd.showAd(this, placementName); 
        } 
    }
 
    // LevelPlayInterstitialAdListener methods 
    @Override 
    public void onAdLoaded(@NonNull LevelPlayAdInfo adInfo) {} 
    @Override 
    public void onAdLoadFailed(@NonNull LevelPlayAdError error) {} 
    @Override 
    public void onAdDisplayed(@NonNull LevelPlayAdInfo adInfo) {} 
    @Override 
    public void onAdClosed(@NonNull LevelPlayAdInfo adInfo) {} 
    @Override 
    public void onAdClicked(@NonNull LevelPlayAdInfo adInfo) {} 
    @Override 
    public void onAdDisplayFailed(@NonNull LevelPlayAdError error, @NonNull LevelPlayAdInfo adInfo) {} 
    @Override 
    public void onAdInfoChanged(@NonNull LevelPlayAdInfo adInfo) {} 
}
class InterstitialAdActivity : Activity(), LevelPlayInterstitialAdListener {
    private lateinit var mInterstitialAd: LevelPlayInterstitialAd
    fun createInterstitialAd() {
        mInterstitialAd = LevelPlayInterstitialAd("adUnitId")
        mInterstitialAd.setListener(this)
    }
    fun loadInterstitialAd() {
        mInterstitialAd.loadAd()
    }
    fun showInterstitialAd() {
        if (mInterstitialAd.isAdReady()) {
            mInterstitialAd.showAd(this)
        }
    }
    fun showInterstitialAd(placementName: String) {
        // Check that ad is ready and that the placement is not capped 
        if (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) {
            mInterstitialAd.showAd(this, placementName)
        }
    }
    // LevelPlayInterstitialAdListener methods
    override fun onAdLoaded(adInfo: LevelPlayAdInfo) {}
    override fun onAdLoadFailed(error: LevelPlayAdError) {}
    override fun onAdInfoChanged(adInfo: LevelPlayAdInfo) {}
    override fun onAdDisplayed(adInfo: LevelPlayAdInfo) {}
    override fun onAdDisplayFailed(error: LevelPlayAdError, adInfo: LevelPlayAdInfo) {}
    override fun onAdClicked(adInfo: LevelPlayAdInfo) {}
    override fun onAdClosed(adInfo: LevelPlayAdInfo) {}
}

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

実装デモアプリでは、インタースティシャル広告ユニット API をアプリに実装する方法を確認できます。

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

完了!
これで、アプリでインタースティシャルを配信する準備が整いました!


次のステップは?
実装ガイドに従って、メディエーションプラットフォームに追加のインタースティシャルアドネットワークを設定するか、追加の広告フォーマットを実装します: