載入單一插頁式廣告

插頁式廣告會全螢幕顯示,覆蓋整個應用程式介面。您可以在應用程式的自然轉換點顯示這類廣告,例如操作後的空檔或遊戲關卡之間的暫停時間。應用程式顯示插頁式廣告時,使用者可選擇輕觸廣告並繼續,或是關閉廣告返回應用程式。 請參閱我們的個案研究

本指南說明如何將插頁式廣告整合至 Android 應用程式。

必要條件

設定 GMA Next-Gen SDK

一律使用測試廣告進行測試

建構及測試應用程式時,請務必使用測試廣告,而非實際的正式廣告。如果未使用測試廣告,Google 可能會暫停您的帳戶。

如要載入測試廣告,最簡單的方法是使用 Android 插頁式廣告專用的測試廣告單元 ID:

ca-app-pub-3940256099942544/1033173712

這個廣告單元 ID 經過特別設定,可針對每項要求傳回測試廣告。您可在編寫程式碼、測試及偵錯時,將其用於自己的應用程式。發布應用程式前,請務必將這類 ID 替換為自己的廣告單元 ID。

如要進一步瞭解 GMA Next-Gen SDK 測試廣告,請參閱「啟用測試廣告」。

載入廣告

以下範例說明如何載入單一廣告:

Kotlin

// Load ads after you initialize MobileAds.
InterstitialAd.load(
  AdRequest.Builder(adUnitId).build(),
  object : AdLoadCallback<InterstitialAd> {
    override fun onAdLoaded(ad: InterstitialAd) {
      // Interstitial ad loaded.
      interstitialAd = ad
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      // Interstitial ad failed to load.
      Log.e(TAG, "Interstitial ad failed to load: ${adError.message}")
      interstitialAd = null
    }
  },
)

Java

// Load ads after you initialize MobileAds.
InterstitialAd.load(
    new AdRequest.Builder(adUnitId).build(),
    new AdLoadCallback<InterstitialAd>() {
      @Override
      public void onAdLoaded(@NonNull InterstitialAd ad) {
        // Interstitial ad loaded.
        interstitialAd = ad;
      }

      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError adError) {
        // Interstitial ad failed to load.
        Log.e(TAG, "Interstitial ad failed to load: " + adError.getMessage());
        interstitialAd = null;
      }
    });

測試時,請使用測試廣告單元 ID: ca-app-pub-3940256099942544/1033173712

顯示廣告

如要顯示插頁式廣告,請使用 show 方法。

Kotlin

private fun showAd(interstitialAd: InterstitialAd, activity: Activity) {
  // Show the ad.
  interstitialAd.show(activity)
}

Java

private void showAd(InterstitialAd interstitialAd, Activity activity) {
  // Show the ad.
  interstitialAd.show(activity);
}

監聽廣告事件

顯示廣告前,請監聽廣告生命週期事件:

Kotlin

// Listen for ad events.
val ad = interstitialAd
if (ad == null) {
  Log.e(TAG, "Interstitial ad is not ready yet.")
  return
}

ad.adEventCallback =
  object : InterstitialAdEventCallback {
    override fun onAdShowedFullScreenContent() {
      // Interstitial ad did show.
    }

    override fun onAdDismissedFullScreenContent() {
      // Interstitial ad did dismiss.
      interstitialAd = null
    }

    override fun onAdFailedToShowFullScreenContent(
      fullScreenContentError: FullScreenContentError
    ) {
      // Interstitial ad failed to show.
      Log.e(TAG, "Interstitial ad failed to show: ${fullScreenContentError.message}")
    }

    override fun onAdImpression() {
      // Interstitial ad did record an impression.
    }

    override fun onAdClicked() {
      // Interstitial ad did record a click.
    }
  }

Java

// Listen for ad events.
if (interstitialAd == null) {
  Log.e(TAG, "Interstitial ad is not ready yet.");
  return;
}

interstitialAd.setAdEventCallback(
    new InterstitialAdEventCallback() {
      @Override
      public void onAdShowedFullScreenContent() {
        // Interstitial ad did show.
      }

      @Override
      public void onAdDismissedFullScreenContent() {
        // Interstitial ad did dismiss.
        interstitialAd = null;
      }

      @Override
      public void onAdFailedToShowFullScreenContent(
          @NonNull FullScreenContentError fullScreenContentError) {
        // Interstitial ad failed to show.
        Log.e(TAG, "Interstitial ad failed to show: " + fullScreenContentError.getMessage());
      }

      @Override
      public void onAdImpression() {
        // Interstitial ad did record an impression.
      }

      @Override
      public void onAdClicked() {
        // Interstitial ad did record a click.
      }
    });