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

เลือกแพลตฟอร์ม: iOS Unity Flutter 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 หนึ่งครั้ง หลังจากเรียกใช้เมธอด 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 set the buffer size to 2 preloaded ads.
val configuration = PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(2).build()

Java

// Define a PreloadConfiguration and set the buffer size to 2 preloaded ads.
PreloadConfiguration configuration =
    new PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(2).build();

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

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

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