Quảng cáo xen kẽ

Quảng cáo xen kẽ là quảng cáo toàn màn hình, che phủ giao diện của ứng dụng lưu trữ. Quảng cáo này thường xuất hiện ở các điểm chuyển tiếp tự nhiên trong quy trình hoạt động của ứng dụng, chẳng hạn như giữa các hoạt động hoặc trong thời gian tạm dừng giữa các cấp độ của trò chơi. Khi một ứng dụng hiển thị quảng cáo xen kẽ, người dùng có thể chọn nhấn vào quảng cáo và tiếp tục đến đích đến của quảng cáo hoặc đóng quảng cáo và quay lại ứng dụng.

Tài liệu hướng dẫn này giải thích cách tích hợp quảng cáo xen kẽ vào ứng dụng Android.

Điều kiện tiên quyết

  • Thiết lập GMA Next-Gen SDK.
  • Luôn thử nghiệm bằng quảng cáo thử nghiệm

    Khi bạn tạo và thử nghiệm ứng dụng, hãy nhớ sử dụng quảng cáo thử nghiệm thay vì quảng cáo đang chạy trong thực tế. Chúng tôi có thể tạm ngưng tài khoản của bạn nếu bạn không làm như vậy.

    Cách đơn giản nhất để tải quảng cáo thử nghiệm là sử dụng mã đơn vị quảng cáo thử nghiệm dành riêng cho quảng cáo xen kẽ trên Android:

    /21775744923/example/interstitial

    Mã này được định cấu hình đặc biệt để trả về quảng cáo thử nghiệm cho mọi yêu cầu, và bạn có thể sử dụng mã này trong ứng dụng của mình khi lập trình, chạy thử nghiệm và gỡ lỗi. Bạn chỉ cần nhớ thay thế mã này bằng mã đơn vị quảng cáo của mình trước khi xuất bản ứng dụng.

    Để biết thông tin chi tiết về quảng cáo thử nghiệm GMA Next-Gen SDK, hãy xem bài viết Bật quảng cáo thử nghiệm.

    Tải quảng cáo

    Để tải quảng cáo, GMA Next-Gen SDK cung cấp những cách sau:

    Tải bằng API tải quảng cáo đơn

    Ví dụ sau đây cho biết cách tải một quảng cáo:

    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 GMA Next-Gen SDK.
        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 = "/21775744923/example/interstitial"
      }
    }
    

    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 = "/21775744923/example/interstitial";
      private InterstitialAd interstitialAd;
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        // Load ads after you initialize GMA Next-Gen SDK.
        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;
              }
            }
        );
      }
    }
    

    Tải bằng API tải trước quảng cáo

    Để bắt đầu tải trước, hãy làm như sau:

    1. Khởi chạy cấu hình tải trước bằng một yêu cầu quảng cáo.

    2. Bắt đầu trình tải trước cho quảng cáo xen kẽ bằng mã đơn vị quảng cáo và cấu hình tải trước:

    Kotlin

    private fun startPreloading(adUnitId: String) {
      val adRequest = AdRequest.Builder(adUnitId).build()
      val preloadConfig = PreloadConfiguration(adRequest)
      InterstitialAdPreloader.start(adUnitId, preloadConfig)
    }
    
    

    Java

    private void startPreloading(String adUnitId) {
      AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
      PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
      InterstitialAdPreloader.start(adUnitId, preloadConfig);
    }
    
    

    Quảng cáo sẽ liên tục được cung cấp khi bạn hiển thị quảng cáo. Ví dụ sau đây thăm dò một quảng cáo từ trình tải trước:

    Kotlin

    // Polling returns the next available ad and loads another ad in the background.
    val ad = InterstitialAdPreloader.pollAd(adUnitId)
    

    Java

    // Polling returns the next available ad and loads another ad in the background.
    final InterstitialAd ad = InterstitialAdPreloader.pollAd(adUnitId);
    

    Đặt InterstitialAdEventCallback

    InterstitialAdEventCallback xử lý các sự kiện liên quan đến việc hiển thị InterstitialAd. Trước khi hiển thị quảng cáo xen kẽ, hãy nhớ đặt lệnh gọi lại:

    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();
          }
        }
    );
    

    Hiển thị quảng cáo

    Để hiển thị quảng cáo xen kẽ, hãy sử dụng phương thức show().

    Kotlin

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

    Java

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

    Một số phương pháp hay nhất

    Cân nhắc xem quảng cáo xen kẽ có phải là loại quảng cáo thích hợp cho ứng dụng của bạn hay không.
    Quảng cáo xen kẽ hoạt động hiệu quả nhất trong những ứng dụng có các điểm chuyển tiếp tự nhiên. Việc kết thúc một tác vụ trong ứng dụng, chẳng hạn như chia sẻ hình ảnh hoặc hoàn thành một cấp độ trò chơi, sẽ tạo ra một điểm như vậy. Hãy đảm bảo bạn cân nhắc thời điểm sẽ hiển thị quảng cáo xen kẽ trong quy trình hoạt động của ứng dụng và khả năng người dùng sẽ phản hồi.
    Hãy nhớ tạm dừng hành động khi hiển thị quảng cáo xen kẽ.
    Có nhiều loại quảng cáo xen kẽ: văn bản, hình ảnh, video và các loại khác. Điều quan trọng là phải đảm bảo rằng khi ứng dụng của bạn hiển thị quảng cáo xen kẽ, ứng dụng cũng sẽ tạm ngưng việc sử dụng một số tài nguyên để quảng cáo có thể tận dụng các tài nguyên đó. Ví dụ: khi bạn thực hiện lệnh gọi để hiển thị quảng cáo xen kẽ, hãy nhớ tạm dừng mọi đầu ra âm thanh do ứng dụng của bạn tạo ra.
    Cho phép thời gian tải đầy đủ.
    Bạn phải đảm bảo hiển thị quảng cáo xen kẽ tại thời điểm phù hợp, nhưng cũng phải đảm bảo rằng người dùng không phải đợi quảng cáo tải. Việc tải quảng cáo trước bằng cách gọi load() trước khi bạn định gọi show() có thể đảm bảo rằng ứng dụng của bạn có một quảng cáo xen kẽ đã tải đầy đủ và sẵn sàng khi đến thời điểm hiển thị quảng cáo.
    Không làm phiền người dùng bằng quá nhiều quảng cáo.
    Mặc dù việc tăng tần suất hiển thị quảng cáo xen kẽ trong ứng dụng có thể là một cách hay để tăng doanh thu, nhưng việc đó cũng có thể kéo trải nghiệm người dùng đi xuống và làm giảm tỷ lệ nhấp. Hãy đảm bảo rằng người dùng không bị gián đoạn quá thường xuyên đến mức không còn có thể tận hưởng việc sử dụng ứng dụng của bạn.

    Ví dụ:

    Tải xuống và chạy ứng dụng mẫu minh hoạ cách sử dụng GMA Next-Gen SDK.