Tải trước quảng cáo (Alpha)

Tính năng tải trước quảng cáo là một tính năng tải quảng cáo do Google quản lý trong Google Mobile Ads SDK Tính năng này quản lý việc tải và lưu quảng cáo vào bộ nhớ đệm thay cho bạn. Tính năng tải trước quảng cáo yêu cầu bạn thay đổi cách quản lý việc tải quảng cáo. Để tối ưu hoá hiệu suất bằng tính năng tải trước quảng cáo, hãy tắt tính năng lưu vào bộ nhớ đệm tuỳ chỉnh và uỷ quyền trách nhiệm đó cho Google Mobile Ads SDK.

Tính năng tải trước quảng cáo mang lại những lợi ích sau so với tính năng tải quảng cáo thủ công:

  • Quản lý tham chiếu: giữ quảng cáo đã tải để bạn không phải duy trì các tham chiếu cho đến khi sẵn sàng hiển thị quảng cáo.
  • Tự động tải lại: tự động tải một quảng cáo mới khi bạn kéo một quảng cáo ra khỏi bộ nhớ đệm.
  • Thử lại được quản lý: tự động thử lại các yêu cầu không thành công bằng thuật toán thời gian đợi luỹ thừa.
  • Xử lý thời gian hết hạn: tự động làm mới quảng cáo trước khi quảng cáo hết hạn (thường là sau một giờ).
  • Tối ưu hoá bộ nhớ đệm: Nếu bạn sử dụng kích thước bộ nhớ đệm lớn hơn một, Google Mobile Ads SDK tối ưu hoá thứ tự bộ nhớ đệm để phân phối quảng cáo tốt nhất.

Hướng dẫn này trình bày cách định cấu hình quảng cáo tải trước, kiểm tra tính khả dụng của quảng cáo tải trước và hiển thị quảng cáo tải trước.

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

Trước khi tiếp tục hướng dẫn này, bạn cần hoàn tất các mục sau:

  • Cài đặt Google Mobile Ads SDK phiên bản 24.4.0 trở lên. Bạn có thể tìm thấy tài nguyên dành cho nhà phát triển cho các phiên bản trước đó tại 23.6.1 – 24.3.0, nhưng bạn nên sử dụng phiên bản 24.4.0 trở lên và làm theo hướng dẫn này trong tương lai.
  • Thiết lập Google Mobile Ads SDK.
  • Không bắt buộc: Tải xuống và chạy ứng dụng mẫu bằng Java hoặc Kotlin.

Bắt đầu tải trước quảng cáo

Để bắt đầu tải trước quảng cáo, hãy gọi start(). Chỉ gọi phương thức này một lần khi bắt đầu ứng dụng. Sau khi bạn gọi start(), Google Mobile Ads SDK sẽ tự động tải trước quảng cáo và thử lại các yêu cầu không thành công cho các cấu hình tải trước.

Ví dụ sau đây bắt đầu tải trước quảng cáo:

Kotlin

// Define a PreloadConfiguration.
val configuration = PreloadConfiguration.Builder("AD_UNIT_ID").build()
// Start the preloading with a given preload ID, preload configuration.
InterstitialAdPreloader.start("AD_UNIT_ID", configuration)

Java

// Define a PreloadConfiguration.
PreloadConfiguration configuration = new PreloadConfiguration.Builder("AD_UNIT_ID").build();
// Start the preloading with a given preload ID, preload configuration.
InterstitialAdPreloader.start("AD_UNIT_ID", configuration);

Thay thế AD_UNIT_ID bằng mã đơn vị quảng cáo của bạn.

Nhận và hiển thị quảng cáo tải trước

Khi sử dụng tính năng tải trước quảng cáo, Google Mobile Ads SDK sẽ giữ quảng cáo đã lưu vào bộ nhớ đệm. Khi bạn muốn hiển thị một quảng cáo, hãy gọi pollAd(). Google Mobile Ads SDK truy xuất quảng cáo có sẵn và tự động tải trước quảng cáo tiếp theo ở chế độ nền.

Tránh gọi phương thức này cho đến khi bạn sẵn sàng hiển thị quảng cáo. Việc giữ quảng cáo trong bộ nhớ đệm cho phép Google Mobile Ads SDK tự động làm mới quảng cáo đã hết hạn và tối ưu hoá bộ nhớ đệm.

Ví dụ sau đây truy xuất và hiển thị một quảng cáo tải trước:

Kotlin

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

// [Optional] Interact with the ad as needed.
ad?.onPaidEventListener = OnPaidEventListener {
  // [Optional] Send the impression-level ad revenue information to your preferred
  // analytics server directly within this callback.
}

// Show the ad immediately.
ad?.show(activity)

Java

// pollAd() returns the next available ad and loads another ad in the background.
InterstitialAd ad = InterstitialAdPreloader.pollAd("AD_UNIT_ID");

if (ad != null) {
  // [Optional] Interact with the ad object as needed.
  ad.setOnPaidEventListener(
      adValue -> {
        // [Optional] Send the impression-level ad revenue information to your preferred
        // analytics server directly within this callback.
      });

  // Show the ad immediately.
  ad.show(activity);
}

Kiểm tra tính khả dụng của quảng cáo tải trước

Để kiểm tra tính khả dụng của quảng cáo, hãy chọn một trong những cách sau:

Kiểm tra tính khả dụng của quảng cáo tải trước

Ví dụ sau đây kiểm tra tính khả dụng của quảng cáo:

Kotlin

// Verify that a preloaded ad is available.
if (!InterstitialAdPreloader.isAdAvailable("AD_UNIT_ID")) {
  // No ads are available to show.
}

Java

// Verify that a preloaded ad is available.
if (!InterstitialAdPreloader.isAdAvailable("AD_UNIT_ID")) {
  // No ads are available to show.
}

Theo dõi tính khả dụng của quảng cáo tải trước

Đăng ký các sự kiện tải trước để nhận thông báo khi quảng cáo được tải trước thành công, không tải trước được hoặc bộ nhớ đệm quảng cáo đã cạn kiệt.

Các sự kiện tải trước được dùng cho mục đích phân tích. Trong các lệnh gọi lại sự kiện tải trước:

  • Không gọi start().
  • Tránh gọi pollAd() trừ phi quảng cáo sẽ được hiển thị ngay lập tức.

Ví dụ sau đây đăng ký các sự kiện quảng cáo:

Kotlin

// Define a callback to receive preload events.
val callback =
  object : PreloadCallbackV2() {
    override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo?) {
      // Called when preloaded ads are available.
    }

    override fun onAdsExhausted(preloadId: String) {
      // Called when no preloaded ads are available.
    }

    override fun onAdFailedToPreload(preloadId: String, adError: AdError) {
      // Called when preloaded ads failed to load.
    }
  }

Java

// Define a callback to receive preload events.
PreloadCallbackV2 callback =
    new PreloadCallbackV2() {
      @Override
      public void onAdPreloaded(
          @NonNull String preloadId, @Nullable ResponseInfo responseInfo) {
        // Called when preloaded ads are available.
      }

      @Override
      public void onAdsExhausted(@NonNull String preloadId) {
        // Called when no preloaded ads are available.
      }

      @Override
      public void onAdFailedToPreload(@NonNull String preloadId, @NonNull AdError adError) {
        // Called when preloaded ads failed to load.
      }
    };

Ngừng tải trước quảng cáo

Nếu không cần hiển thị lại quảng cáo cho một mã tải trước trong phiên, bạn có thể ngừng tải trước quảng cáo. Để ngừng tải trước quảng cáo cho một mã tải trước cụ thể, hãy gọi destroy() bằng một mã tải trước.

Kotlin

// Stops the preloading and destroy preloaded ads.
InterstitialAdPreloader.destroy("AD_UNIT_ID")
// Stops the preloading and destroy all ads.
InterstitialAdPreloader.destroyAll()

Java

// Stops the preloading and destroy preloaded ads.
InterstitialAdPreloader.destroy("AD_UNIT_ID");
// Stops the preloading and destroy all ads.
InterstitialAdPreloader.destroyAll();

Đặt dung lượng bộ nhớ đệm

Dung lượng bộ nhớ đệm kiểm soát số lượng quảng cáo tải trước được giữ trong bộ nhớ. Theo mặc định, Google tối ưu hoá dung lượng bộ nhớ đệm để cân bằng mức tiêu thụ bộ nhớ và độ trễ phân phát quảng cáo. Nếu ứng dụng của bạn hiển thị quảng cáo trước khi quảng cáo tiếp theo được tải, bạn có thể đặt dung lượng bộ nhớ đệm tuỳ chỉnh để tăng số lượng quảng cáo được giữ trong bộ nhớ. Bạn nên đặt dung lượng bộ nhớ đệm tối đa là 4.

Kotlin

// Define a PreloadConfiguration and buffer up to 5 preloaded ads.
val configuration = PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(5).build()

Java

// Define a PreloadConfiguration and buffer up to 5 preloaded ads.
PreloadConfiguration configuration =
    new PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(5).build();