インタースティシャル - 広告ユニットAPIへの移行

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

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

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

インタースティシャル広告オブジェクトの作成は、onInitSuccess コールバックを受け取った後に行う必要があります。

オブジェクトはセッション中に複数回のロードや表示に再利用できます。一度作成したら同じ広告ユニットをロード・表示に使用してください。

より高度な実装が必要な場合は、複数のインタースティシャル広告オブジェクトを作成しても構いません。

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

インタースティシャルリスナーの登録

広告配信の通知を受けるには、LevelPlayInterstitialAdListener をコードで実装してください。LevelPlayInterstitialListener の代わりに使用します。

  • インタースティシャル広告のロード前にリスナーを設定することを推奨します。
  • 各インタースティシャル広告それぞれにリスナー実装が必要です。
  • コールバックはメインスレッドで実行されます。
// 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
    }
})
レガシー 広告ユニット(New)
Listener LevelPlayInterstitialListener LevelPlayInterstitialAdListener
Callbacks onAdReady onAdLoaded 
onAdLoadFailed onAdLoadFailed
onAdOpened onAdDisplayed
onAdClosed onAdClosed
onAdShowFailed onAdDisplayFailed
onAdClicked onAdClicked
onAdShowSucceeded – (deprecated)
onAdInfoChanged

LevelPlay Ad Info

Ad Info インタースティシャルリスナーコールバックから返される AdInfo クラスは LevelPlayAdInfo に置き換わりました。

実装や利用可能なフィールドの詳細はこちらをご覧ください。

インタースティシャル広告のロード

インタースティシャル広告をロードするには、loadInterstitial の代わりにloadAd を使用してください。

mInterstitialAd.loadAd();
mInterstitialAd.loadAd()

インタースティシャル広告の表示

onAdLoaded コールバックを受け取った後、LevelPlayInterstitialAdListener API を使ってインタースティシャル広告を表示します。

  • Activity を渡す必要があります。
  • プレースメントを利用する場合は、下記の Placements セクションのように 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。無効またはキャップに達していない場合は 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 メソッドで特定のプレースメントで広告を配信してください。

// 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);
}
// 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)
}

マルチ広告ユニット対応インタースティシャル API

レガシー 広告ユニット(New)
API loadInterstitial loadAd
showInterstitial showAd
isInterstitialPlacementCapped LevelPlayInterstitialAd.isPlacementCapped
isInterstitialReady isAdReady

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

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 Mediation デモアプリ

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

Android デモアプリ

完了!

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