Android のインタースティシャル実装
Unity LevelPlay インタースティシャルはフルスクリーンの広告ユニットであり、通常はアプリのライフサイクル中の自然な移行ポイントで配信されます。
インタースティシャル広告オブジェクトを作成する
インタースティシャル広告ユニットを作成します。インタースティシャルオブジェクトの作成は、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
インタースティシャルリスナーコールバックによって返される ISAdInfo クラスは、LPMAdInfo に置き換えられました。
利用可能なフィールドの詳細については、こちらをご覧ください。
インタースティシャル広告をロードする
インタースティシャル広告をロードするには、LoadAd メソッドを呼びます。
インタースティシャル広告を表示する
LevelPlayInterstitialAdListener の onAdLoaded コールバックを受信したら、インタースティシャル広告を表示します。
- 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 をアプリに実装する方法を確認できます。
完了!
これで、アプリでインタースティシャルを配信する準備が整いました!
実装ガイドに従って、メディエーションプラットフォームに追加のインタースティシャルアドネットワークを設定するか、追加の広告フォーマットを実装します: