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

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

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

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

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

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

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

คุณต้องตั้งค่าGoogle Mobile Ads Unity Pluginก่อนที่จะทำตามบทแนะนำนี้

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

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

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

var preloadConfiguration = new PreloadConfiguration
{
    AdUnitId = "AD_UNIT_ID",
    Request = new AdRequest(),
};

// Start the preloading initialization process after MobileAds.Initialize().
InterstitialAdPreloader.Preload(
    // The Preload ID can be any unique string to identify this configuration.
    "AD_UNIT_ID",
    preloadConfiguration);

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

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

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

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

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

if (ad != null)
{
    // [Optional] Interact with the ad object as needed.
    ad.OnAdPaid += (AdValue value) =>
    {
        Debug.Log($"Ad paid: {value.CurrencyCode} {value.Value}");
        // [Optional] Send the impression-level ad revenue information to your preferred
        // analytics server directly within this callback.
    };

    // Do not hold onto preloaded ads, always show a preloaded ad immediately.
    ad.Show();
}

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

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

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

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

var isAdAvailable = InterstitialAdPreloader.IsAdAvailable("AD_UNIT_ID");

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

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

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

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

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


void StartPreloadWithCallbacks()
{
    var preloadConfiguration = new PreloadConfiguration
    {
        AdUnitId = "AD_UNIT_ID",
        Request = new AdRequest(),
    };

    // Start the preloading initialization process after MobileAds.Initialize().
    InterstitialAdPreloader.Preload(
        // The Preload ID can be any unique string to identify this configuration.
        "AD_UNIT_ID",
        preloadConfiguration,
        onAdPreloaded,
        onAdFailedToPreload,
        onAdsExhausted);
}

void onAdPreloaded(string preloadId, ResponseInfo responseInfo)
{
    Debug.Log($"Preload ad configuration {preloadId} was preloaded.");
}

void onAdFailedToPreload(string preloadId, AdError adError)
{
    string errorMessage = $"Preload ad configuration {preloadId} failed to " +
                          $"preload with error : {adError.GetMessage()}.";
    Debug.Log(errorMessage);
}

void onAdsExhausted(string preloadId)
{
    Debug.Log($"Preload ad configuration {preloadId} was exhausted");
    // [Important] Don't call Preload() or DequeueAd() from onAdsExhausted.
}

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

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

InterstitialAdPreloader.Destroy("AD_UNIT_ID");
InterstitialAdPreloader.DestroyAll();

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

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

new PreloadConfiguration
{
    AdUnitId = "AD_UNIT_ID",
    Request = new AdRequest(),
    BufferSize = 3
};

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

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

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