Android 向けインタースティシャルインテグレーション
広告単位の初期化、リスナーの設定、広告のロード、可用性の確認、適切なタイミングでの表示を行うことにより、Androidアプリケーションへのインタースティシャル広告のインテグレーションを容易にします。
読み終わるまでの所要時間 10 分最終更新 6日前
Unity LevelPlay Interstitial は、全画面の広告単位です。通常は、アプリケーションのライフサイクル中の自然な遷移ポイントで機能します。
前提条件
- LevelPlay SDK がアプリケーションに正しく統合されていることを確認します。インテグレーションの概要はこちらです。
- LevelPlay 初期化 API を使用して SDK を初期化していることを確認します。
- LevelPlay ダッシュボードで AdUnitID を見つけます。
インタースティシャル広告オブジェクトの作成
インタースティシャル広告オブジェクトの作成は、onInitSuccess コールバックの受信後に実行する必要があります。
オブジェクトは、セッションを通じて複数のロードと表示をハンドルできる再利用可能なインスタンスです。作成後、同じ広告単位の広告をロードおよび表示するために使用する必要があります。
より高度な実装では、必要に応じて複数のインタースティシャル広告オブジェクトを作成できます。
LevelPlayInterstitialAd mInterstitialAd = new LevelPlayInterstitialAd("adUnitId");
val mInterstitialAd = LevelPlayInterstitialAd("adUnitId")
インタースティシャルリスナーの設定
コードに LevelPlayInterstitialAdListener を実装して、広告配信に関する情報を取得します。
- インタースティシャル広告をロードする前にリスナーを設定することをお勧めします。
- 各インタースティシャル広告には、独自のリスナー実装が必要です。
- コールバックはメインスレッドで実行されます。
// Create the interstitial ad objectLevelPlayInterstitialAd 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.別のインタースティシャル広告がロードされ、CPM/レートが高い場合に利用可能 // Optional }});
// Create the interstitial ad object 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.別のインタースティシャル広告がロードされ、CPM/レートが高い場合に利用可能 // Optional }})
LevelPlay 広告情報
LevelPlayAdInfo パラメーターには、ロードされた広告に関する情報が含まれます。
ロード インタースティシャル広告
インタースティシャル広告をロードするには、loadAd を使用します。
mInterstitialAd.loadAd();
mInterstitialAd.loadAd()
インタースティシャル広告の表示
LevelPlayInterstitialAdListener API を使用して onAdLoaded コールバックを受信した後にインタースティシャル広告を表示します。
- アクティビティの共有に必要です。
- プレースメントを使用する場合は、後述のプレースメントのセクションで示すように、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 cappedif (mInterstitialAd.isAdReady() && !LevelPlayInterstitialAd.isPlacementCapped(placementName)) { mInterstitialAd.showAd(this, placementName)}
Placements
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:文字列) { // 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) {} }
クラス 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:文字列) { // 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) {} オーバーライド fun onAdInfoChanged(adInfo:LevelPlayAdInfo) {} override fun onAdDisplayed(adInfo:LevelPlayAdInfo) {} オーバーライド fun onAdDisplayFailed(エラー:LevelPlayAdError、adInfo:LevelPlayAdInfo) {} override fun onAdClicked(adInfo:LevelPlayAdInfo) {} override fun onAdClosed(adInfo:LevelPlayAdInfo) {}}
LevelPlay Mediation デモアプリケーション
インテグレーション Demo (インテグレーションデモ) アプリケーションは、アプリケーションにインタースティシャル広告単位 API を統合する方法を示します。
インテグレーションテストスイートとのインテグレーションを確認します。
次のステップ
インテグレーション ガイドに従って、追加のインタースティシャル広告ネットワークを統合したり、追加の広告フォーマットを設定したりできます。