插頁式廣告

選取平台: Android iOS Unity Flutter

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

本指南說明如何在 Android 應用程式中整合中繼插頁廣告。

必要條件

  • Google Mobile Ads SDK 19.7.0 以上版本。
  • 完成入門指南

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

建構及測試應用程式時,請務必使用測試廣告,而非實際的正式廣告。否則帳戶可能會遭到停權。

如要輕鬆測試廣告載入作業,請使用專為 Android 插頁式廣告提供的測試廣告單元 ID:

ca-app-pub-3940256099942544/1033173712

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

如要進一步瞭解 Mobile Ads SDK 測試廣告的運作方式,請參閱「測試廣告」。

載入廣告

如要載入插頁式廣告,請呼叫 InterstitialAd 靜態 load() 方法,並傳遞 InterstitialAdLoadCallback,以接收載入的廣告或任何可能發生的錯誤。請注意,與其他格式載入回呼一樣, InterstitialAdLoadCallback 會運用 LoadAdError 提供更高保真度的錯誤詳細資料。

Java

InterstitialAd.load(
    this,
    AD_UNIT_ID,
    new AdRequest.Builder().build(),
    new InterstitialAdLoadCallback() {
      @Override
      public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
        Log.d(TAG, "Ad was loaded.");
        MyActivity.this.interstitialAd = interstitialAd;
      }

      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        Log.d(TAG, loadAdError.getMessage());
        interstitialAd = null;
    });

Kotlin

InterstitialAd.load(
  this,
  AD_UNIT_ID,
  AdRequest.Builder().build(),
  object : InterstitialAdLoadCallback() {
    override fun onAdLoaded(ad: InterstitialAd) {
      Log.d(TAG, "Ad was loaded.")
      interstitialAd = ad
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      Log.d(TAG, adError.message)
      interstitialAd = null
    }
  },
)

設定 FullScreenContentCallback

FullScreenContentCallback 會處理與顯示 InterstitialAd 相關的事件。顯示 InterstitialAd 前,請務必設定回呼:

Java

interstitialAd.setFullScreenContentCallback(
    new FullScreenContentCallback() {
      @Override
      public void onAdDismissedFullScreenContent() {
        // Called when fullscreen content is dismissed.
        Log.d(TAG, "The ad was dismissed.");
        // Make sure to set your reference to null so you don't
        // show it a second time.
        MyActivity.this.interstitialAd = null;
      }

      @Override
      public void onAdFailedToShowFullScreenContent(AdError adError) {
        // Called when fullscreen content failed to show.
        Log.d(TAG, "The ad failed to show.");
        // Make sure to set your reference to null so you don't
        // show it a second time.
        MyActivity.this.interstitialAd = null;
      }

      @Override
      public void onAdShowedFullScreenContent() {
        // Called when fullscreen content is shown.
        Log.d(TAG, "The ad was shown.");
      }

      @Override
      public void onAdImpression() {
        // Called when an impression is recorded for an ad.
        Log.d(TAG, "The ad recorded an impression.");
      }

      @Override
      public void onAdClicked() {
        // Called when ad is clicked.
        Log.d(TAG, "The ad was clicked.");
      }
    });

Kotlin

interstitialAd?.fullScreenContentCallback =
  object : FullScreenContentCallback() {
    override fun onAdDismissedFullScreenContent() {
      // Called when fullscreen content is dismissed.
      Log.d(TAG, "Ad was dismissed.")
      // Don't forget to set the ad reference to null so you
      // don't show the ad a second time.
      interstitialAd = null
    }

    override fun onAdFailedToShowFullScreenContent(adError: AdError) {
      // Called when fullscreen content failed to show.
      Log.d(TAG, "Ad failed to show.")
      // Don't forget to set the ad reference to null so you
      // don't show the ad a second time.
      interstitialAd = null
    }

    override fun onAdShowedFullScreenContent() {
      // Called when fullscreen content is shown.
      Log.d(TAG, "Ad showed fullscreen content.")
    }

    override fun onAdImpression() {
      // Called when an impression is recorded for an ad.
      Log.d(TAG, "Ad recorded an impression.")
    }

    override fun onAdClicked() {
      // Called when ad is clicked.
      Log.d(TAG, "Ad was clicked.")
    }
  }

顯示廣告

插頁式廣告應在應用程式流程中的自然暫停時間顯示, 例如遊戲關卡之間,或使用者完成工作後。 如要顯示插頁式廣告,請使用 show() 方法。

Java

if (interstitialAd != null) {
  interstitialAd.show(this);
} else {
  Log.d(TAG, "The interstitial ad is still loading.");
}

Kotlin

interstitialAd?.show(this)

最佳做法

請考慮插頁式廣告是否適合您的應用程式。
插頁式廣告最適合在有自然轉換點的應用程式中放送。 使用者在應用程式中完成操作時 (例如分享圖片或遊戲破關),就會形成這類空檔。請務必考量要在應用程式工作流程的哪些時間點顯示插頁式廣告,以及使用者可能的回應方式。
顯示插頁式廣告時,請記得暫停動作。
我們提供數種插頁式廣告格式:文字、圖像、影片等。請務必確保應用程式在顯示中介層廣告時,也會暫停使用部分資源,讓廣告能充分利用這些資源。舉例來說,當您呼叫顯示中介插頁廣告時,請務必暫停應用程式產生的任何音訊輸出。
預留充足的載入時間。
除了確保在適當時間顯示插頁式廣告外,也請務必確保使用者不必等待廣告載入。在您打算呼叫 show() 前呼叫 load() 預先載入廣告,可確保應用程式在需要顯示插頁式廣告時,已備妥完全載入的廣告。
不要讓應用程式廣告氾濫。
雖然增加應用程式中的中插廣告頻率,似乎是提高收益的好方法,但這也可能破壞使用者體驗,並降低點擊率。確保使用者不會因為太常受到干擾,而無法享受使用應用程式的樂趣。

原始碼

GitHub 上的範例

成功案例

後續步驟