插頁式廣告

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

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

必要條件

  • 完成入門指南的步驟。
  • 一律使用測試廣告進行測試

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

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

    ca-app-pub-3940256099942544/1033173712

    這個 ID 經過特別設定,每次請求都會傳回測試廣告。在編寫程式碼、測試及偵錯階段,您可以在應用程式中自由使用,發布應用程式前,請務必用自己的廣告單元 ID 替換這類 ID。

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

    載入廣告

    如要載入插頁式廣告,請呼叫 InterstitialAd 的靜態 load() 方法,並傳遞 AdLoadCallback<InterstitialAd> 來接收成功載入的廣告,或處理可能發生的錯誤。

    Kotlin

    import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback
    import com.google.android.libraries.ads.mobile.sdk.common.AdRequest
    import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError
    import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
    import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAd
    import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAdEventCallback
    import com.google.android.libraries.ads.mobile.sdk.MobileAds
    
    class InterstitialActivity : Activity() {
      private var interstitialAd: InterstitialAd? = null
    
      override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    
        // Load ads after you initialize Google Mobile Ads SDK (beta).
        InterstitialAd.load(
          AdRequest.Builder(AD_UNIT_ID).build(),
          object : AdLoadCallback<InterstitialAd> {
            override fun onAdLoaded(ad: InterstitialAd) {
              // Interstitial ad loaded.
              interstitialAd = ad
            }
    
            override fun onAdFailedToLoad(adError: LoadAdError) {
              // Interstitial ad failed to load.
              interstitialAd = null
            }
          },
        )
      }
    
      companion object {
        // Sample interstitial ad unit ID.
        const val AD_UNIT_ID = "ca-app-pub-3940256099942544/1033173712"
      }
    }
    

    Java

    import com.google.android.libraries.ads.mobile.sdk.common.AdLoadCallback;
    import com.google.android.libraries.ads.mobile.sdk.common.AdRequest;
    import com.google.android.libraries.ads.mobile.sdk.common.FullScreenContentError;
    import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError;
    import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAd;
    import com.google.android.libraries.ads.mobile.sdk.interstitial.InterstitialAdEventCallback;
    import com.google.android.libraries.ads.mobile.sdk.MobileAds;
    
    class InterstitialActivity extends Activity {
      // Sample interstitial ad unit ID.
      private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/1033173712";
      private InterstitialAd interstitialAd;
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        // Load ads after you initialize Google Mobile Ads SDK (beta).
        InterstitialAd.load(
            new AdRequest.Builder(AD_UNIT_ID).build(),
            new AdLoadCallback<InterstitialAd>() {
              @Override
              public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
                // Interstitial ad loaded.
                AdLoadCallback.super.onAdLoaded(interstitialAd);
                InterstitialActivity.this.interstitialAd = interstitialAd;
              }
    
              @Override
              public void onAdFailedToLoad(@NonNull LoadAdError adError) {
                // Interstitial ad failed to load.
                AdLoadCallback.super.onAdFailedToLoad(adError);
                interstitialAd = null;
              }
            }
        );
      }
    }
    

    設定 InterstitialAdEventCallback

    InterstitialAdEventCallback 會處理與顯示 InterstitialAd 相關的事件。顯示插頁式廣告前,請務必設定回呼:

    Kotlin

    // Listen for ad events.
    interstitialAd?.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.
          interstitialAd = null
        }
    
        override fun onAdImpression() {
          // Interstitial ad did record an impression.
        }
    
        override fun onAdClicked() {
          // Interstitial ad did record a click.
        }
      }
    

    Java

    // Listen for ad events.
    interstitialAd.setAdEventCallback(
        new InterstitialAdEventCallback() {
          @Override
          public void onAdShowedFullScreenContent() {
            // Interstitial ad did show.
            InterstitialAdEventCallback.super.onAdShowedFullScreenContent();
          }
    
          @Override
          public void onAdDismissedFullScreenContent() {
            // Interstitial ad did dismiss.
            InterstitialAdEventCallback.super.onAdDismissedFullScreenContent();
            interstitialAd = null;
          }
    
          @Override
          public void onAdFailedToShowFullScreenContent(
              @NonNull FullScreenContentError fullScreenContentError) {
            // Interstitial ad failed to show.
            InterstitialAdEventCallback.super.onAdFailedToShowFullScreenContent(
                fullScreenContentError);
            initerstitialAd = null;
          }
    
          @Override
          public void onAdImpression() {
            // Interstitial ad did record an impression.
            InterstitialAdEventCallback.super.onAdImpression();
          }
    
          @Override
          public void onAdClicked() {
            // Interstitial ad did record a click.
            InterstitialAdEventCallback.super.onAdClicked();
          }
        }
    );
    

    顯示廣告

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

    Kotlin

    // Show the ad.
    interstitialAd?.show(this@InterstitialActivity)
    

    Java

    // Show the ad.
    interstitialAd.show(InterstitialActivity.this);
    

    最佳做法範例

    評估插頁式廣告是否適合您的應用程式。
    插頁式廣告最適合有自然轉換點的應用程式。當使用者在應用程式中完成操作 (例如分享圖片或遊戲破關),就會形成這類轉換點。請務必考量要在應用程式工作流程的哪些轉換點顯示插頁式廣告,以及使用者可能的反應。
    提醒您,顯示插頁式廣告時,須暫停應用程式動作。
    插頁式廣告有文字、圖片、影片等多種格式。應用程式顯示此類廣告時,請務必暫停使用部分資源,以利廣告放送。舉例來說,呼叫顯示插頁式廣告時,請務必暫停應用程式的任何音訊輸出。
    給予充分的載入時間。
    除了務必確認廣告在適當時機顯示,您也必須確保使用者不必等待插頁式廣告載入。打算呼叫 show() 前,先呼叫 load() 預先載入廣告,可確保應用程式有已完整載入的插頁式廣告,能應要求即時顯示。
    不要讓應用程式廣告氾濫。
    提高插頁式廣告在應用程式中的展示頻率或許能提高收益,但也可能破壞使用者體驗及降低點閱率。為確保愉快的應用程式操作體驗,請不要頻繁打斷使用者。

    範例

    請下載並執行範例應用程式,瞭解如何使用 Google Mobile Ads SDK (Beta 版)。