การโหลดโฆษณาล่วงหน้า (เบต้า)

เลือกแพลตฟอร์ม: Android iOS Unity Android (เวอร์ชันเดิม)

การโหลดโฆษณาล่วงหน้าเป็นฟีเจอร์การโหลดโฆษณาที่ Google จัดการใน Google Mobile Ads SDK (Legacy) ซึ่ง จะจัดการการโหลดและการแคชโฆษณาในนามของคุณ การโหลดโฆษณาล่วงหน้ากำหนดให้คุณต้องเปลี่ยนวิธีจัดการการโหลดโฆษณา หากต้องการเพิ่มประสิทธิภาพโดยใช้การโหลดโฆษณาล่วงหน้า ให้ปิดใช้การแคชที่กำหนดเองและมอบความรับผิดชอบนั้นให้กับ Google Mobile Ads SDK (Legacy)

การโหลดโฆษณาล่วงหน้ามีข้อดีดังต่อไปนี้เมื่อเทียบกับการโหลดโฆษณาด้วยตนเอง

  • การจัดการการอ้างอิง: เก็บโฆษณาที่โหลดไว้เพื่อให้คุณไม่ต้องดูแลการอ้างอิงจนกว่าจะพร้อมแสดงโฆษณา
  • การโหลดซ้ำอัตโนมัติ: โหลดโฆษณาใหม่โดยอัตโนมัติเมื่อคุณนำโฆษณาออกจากแคช
  • การลองใหม่ที่จัดการโดยระบบ: ลองส่งคำขอที่ล้มเหลวซ้ำโดยอัตโนมัติโดยใช้ Exponential Backoff
  • การจัดการการหมดอายุ: รีเฟรชโฆษณาโดยอัตโนมัติก่อนที่โฆษณาจะหมดอายุ (โดยปกติคือหลังจากผ่านไป 1 ชั่วโมง)
  • การเพิ่มประสิทธิภาพแคช: หากคุณใช้แคชขนาดใหญ่กว่า 1 Google Mobile Ads SDK (Legacy) จะเพิ่มประสิทธิภาพลำดับแคชเพื่อแสดงโฆษณาที่ดีที่สุด

คู่มือนี้ครอบคลุมการกำหนดค่าโฆษณาที่โหลดล่วงหน้า การตรวจสอบความพร้อมใช้งานของโฆษณาที่โหลดล่วงหน้า และการแสดงโฆษณาที่โหลดล่วงหน้า

ข้อกำหนดเบื้องต้น

คุณต้องตั้งค่าGoogle Mobile Ads SDK (Legacy)ก่อนที่จะทำตามบทแนะนำนี้

เริ่มโหลดโฆษณาล่วงหน้า

เมื่อแอปเริ่มต้น ให้เรียกใช้เมธอด start 1 ครั้ง หลังจาก เรียกใช้เมธอด start แล้ว Google Mobile Ads SDK (Legacy) จะโหลดโฆษณาล่วงหน้าโดยอัตโนมัติ และลองส่งคำขอที่ล้มเหลวสำหรับการกำหนดค่าที่โหลดล่วงหน้าซ้ำ

ตัวอย่างต่อไปนี้แสดงการเริ่มโหลดโฆษณาล่วงหน้า

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

แทนที่ AD_UNIT_ID ด้วยรหัสหน่วยโฆษณา

รับและแสดงโฆษณาที่โหลดล่วงหน้า

เมื่อใช้การโหลดโฆษณาล่วงหน้า Google Mobile Ads SDK (Legacy) จะเก็บโฆษณาที่แคชไว้ เมื่อต้องการแสดงโฆษณา ให้เรียกใช้เมธอด pollAd Google Mobile Ads SDK (Legacy) จะดึงโฆษณาที่พร้อมใช้งานและโหลด โฆษณาถัดไปล่วงหน้าโดยอัตโนมัติในเบื้องหลัง

หลีกเลี่ยงการเรียกใช้เมธอด pollAd จนกว่าคุณจะพร้อมแสดงโฆษณา การเก็บโฆษณาไว้ในแคชจะช่วยให้ Google Mobile Ads SDK (Legacy) รีเฟรชโฆษณาที่หมดอายุ โดยอัตโนมัติและเพิ่มประสิทธิภาพแคช

ตัวอย่างต่อไปนี้แสดงการดึงและแสดงโฆษณาที่โหลดล่วงหน้า

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

ตรวจสอบความพร้อมใช้งานของโฆษณาที่โหลดล่วงหน้า

หากต้องการตรวจสอบความพร้อมใช้งานของโฆษณา ให้เลือกตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้

รับความพร้อมใช้งานของโฆษณาที่โหลดล่วงหน้า

ตัวอย่างต่อไปนี้แสดงการตรวจสอบความพร้อมใช้งานของโฆษณา

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.
}

ฟังความพร้อมใช้งานของโฆษณาที่โหลดล่วงหน้า

ลงทะเบียนเพื่อรับการแจ้งเตือนเมื่อโหลดโฆษณาล่วงหน้าสำเร็จ โหลดล่วงหน้าไม่สำเร็จ หรือแคชโฆษณาหมด

เหตุการณ์การโหลดล่วงหน้ามีไว้เพื่อวัตถุประสงค์ในการวิเคราะห์ ในการเรียกกลับของเหตุการณ์การโหลดล่วงหน้า ให้ทำดังนี้

  • อย่าเรียกใช้ start
  • หลีกเลี่ยงการเรียกใช้ pollAd เว้นแต่จะแสดงโฆษณาทันที

ตัวอย่างต่อไปนี้แสดงการลงทะเบียนเพื่อรับเหตุการณ์โฆษณา

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.
      }
    };

หยุดโหลดโฆษณาล่วงหน้า

หากไม่จำเป็นต้องแสดงโฆษณาสำหรับรหัสการโหลดล่วงหน้าอีกในเซสชัน คุณก็หยุดโหลดโฆษณาล่วงหน้าได้ หากต้องการหยุดโหลดโฆษณาล่วงหน้าสำหรับรหัสการโหลดล่วงหน้าที่เฉพาะเจาะจง ให้เรียกใช้ destroy ด้วยรหัสการโหลดล่วงหน้า หากต้องการหยุดโหลดล่วงหน้าสำหรับตัวโหลดล่วงหน้าทั้งหมด ให้เรียกใช้ destroyAll

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

ตั้งค่าขนาดบัฟเฟอร์

ขนาดบัฟเฟอร์จะควบคุมจำนวนโฆษณาที่โหลดล่วงหน้าที่เก็บไว้ในหน่วยความจำ โดยค่าเริ่มต้น Google จะเพิ่มประสิทธิภาพขนาดบัฟเฟอร์เพื่อปรับสมดุลการใช้หน่วยความจำและเวลาในการตอบสนองในการแสดงโฆษณา หากแอปแสดงโฆษณาก่อนที่จะโหลดโฆษณาถัดไป คุณสามารถตั้งค่าขนาดบัฟเฟอร์ที่กำหนดเองเพื่อเพิ่มจำนวนโฆษณาที่เก็บไว้ในหน่วยความจำ

Kotlin

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

Java

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

ขีดจำกัดแคชการโหลดล่วงหน้า

Google Mobile Ads SDK (Legacy) กำหนดขีดจำกัดทั่วทั้งแอปสำหรับจำนวนโฆษณาที่โหลดล่วงหน้าทั้งหมด ในหน่วยโฆษณาและรหัสการโหลดล่วงหน้าทั้งหมด ดังนี้

  • ขีดจำกัดเริ่มต้น: Google Mobile Ads SDK (Legacy) จะเก็บโฆษณาที่โหลดล่วงหน้าไว้ในหน่วยความจำได้สูงสุด 6 รายการ ขีดจำกัดนี้ใช้ร่วมกันในทุกรูปแบบและรหัสการโหลดล่วงหน้า
  • เราขอแนะนำให้เก็บขนาดบัฟเฟอร์ไว้ที่ 2 หรือ 3 รายการต่อรหัสการโหลดล่วงหน้า