การโหลดโฆษณาล่วงหน้า (อัลฟ่า)

เลือกแพลตฟอร์ม: Android ใหม่ Android iOS Unity

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

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

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

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

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

ก่อนที่จะทำตามบทแนะนำนี้ คุณต้องทำรายการต่อไปนี้ให้เสร็จ

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

หากต้องการเริ่มโหลดโฆษณาล่วงหน้า ให้เรียกใช้ Preload() เรียกใช้เมธอดนี้เพียงครั้งเดียวต่อรหัสการโหลดล่วงหน้า เราขอแนะนำให้เรียกใช้เมธอดเมื่อเซสชันของแอปเริ่มต้นขึ้น หลังจากที่คุณเรียกใช้ 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 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);

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

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

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

  • อย่าเรียกใช้ 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 จะเพิ่มประสิทธิภาพขนาดบัฟเฟอร์เพื่อสร้างสมดุลระหว่างการใช้หน่วยความจำกับเวลาในการตอบสนองการแสดงโฆษณา หากแอปแสดงโฆษณาก่อนที่จะโหลดโฆษณาถัดไป คุณสามารถตั้งค่าขนาดบัฟเฟอร์ที่กำหนดเองเพื่อเพิ่มจำนวนโฆษณาที่เก็บไว้ในหน่วยความจำ เราขอแนะนำให้ตั้งค่าขนาดบัฟเฟอร์เป็น 2 หรือ 3

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

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

  • ขีดจำกัดเริ่มต้น: Google Mobile Ads Unity Plugin จะเก็บโฆษณาที่โหลดล่วงหน้าไว้ในหน่วยความจำได้สูงสุด 6 รายการ ขีดจำกัดนี้ใช้ร่วมกันในทุกรูปแบบและรหัสการโหลดล่วงหน้า
  • เราขอแนะนำให้ตั้งค่าขนาดบัฟเฟอร์เป็น 2 หรือ 3 ต่อรหัสการโหลดล่วงหน้า
new PreloadConfiguration
{
    AdUnitId = AD_UNIT_ID,
    Request = new AdRequest(),
    BufferSize = 5
};