การโหลดโฆษณาล่วงหน้าเป็นฟีเจอร์การโหลดโฆษณาที่ 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 เวอร์ชัน 10.3.0 ขึ้นไป
- ตั้งค่า Google Mobile Ads Unity Plugin
ใช้ Android SDK เวอร์ชัน
24.4.0และ iOS SDK เวอร์ชัน12.6.0ไม่บังคับ: ดาวน์โหลดและเรียกใช้แอปตัวอย่างการโหลดโฆษณาล่วงหน้า
เริ่มโหลดโฆษณาล่วงหน้า
หากต้องการเริ่มโหลดโฆษณาล่วงหน้า ให้โทรหา 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 จะดึงโฆษณาที่พร้อมใช้งานและโหลดโฆษณาถัดไปล่วงหน้าโดยอัตโนมัติ
ในเบื้องหลัง
คุณจึงไม่ควรเรียกใช้เมธอดนี้จนกว่าจะพร้อมแสดงโฆษณา การเก็บโฆษณาไว้ในแคชจะช่วยให้ 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() โดยมีรหัสการโหลดล่วงหน้า
InterstitialAdPreloader.Destroy(AD_UNIT_ID);
InterstitialAdPreloader.DestroyAll();
ตั้งค่าขนาดบัฟเฟอร์
ขนาดบัฟเฟอร์จะควบคุมจำนวนโฆษณาที่โหลดล่วงหน้าซึ่งจัดเก็บไว้ในหน่วยความจำ โดยค่าเริ่มต้น Google จะเพิ่มประสิทธิภาพขนาดบัฟเฟอร์เพื่อปรับสมดุลการใช้หน่วยความจำและความหน่วงในการแสดงโฆษณา หากแอปแสดงโฆษณาก่อนที่จะโหลดโฆษณาถัดไป คุณสามารถตั้งค่า ขนาดบัฟเฟอร์ที่กำหนดเองเพื่อเพิ่มจำนวนโฆษณาที่เก็บไว้ในหน่วยความจำ เราขอแนะนำให้ใช้ขนาดบัฟเฟอร์ไม่เกิน 4
new PreloadConfiguration
{
AdUnitId = AD_UNIT_ID,
Request = new AdRequest(),
BufferSize = 5
};