インタースティシャル - 広告ユニットAPIへの移行
このガイドでは、現在の実装から LevelPlay インタースティシャル API(広告ユニット ID を使用)へ移行し、インタースティシャル広告をロード・表示する方法について説明します。
インタースティシャル広告オブジェクトの作成
インタースティシャル広告オブジェクトの作成は、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
実装や利用可能なフィールドの詳細はこちらをご覧ください。
インタースティシャル広告のロード
インタースティシャル広告をロードするには、loadInterstitial の代わりに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 をアプリに実装する方法を確認できます。
完了!
これで新しいマルチ広告ユニット API を使って、アプリケーション内でインタースティシャル広告を配信できるようになりました。