ميزة "التحميل المسبق للإعلانات" هي ميزة لتحميل الإعلانات تديرها Google في Google Mobile Ads Unity Plugin وهي تتولّى تحميل الإعلانات وتخزينها مؤقتًا نيابةً عنك. تتطلّب ميزة "التحميل المسبق للإعلانات" تغيير طريقة إدارة تحميل الإعلانات. لتحسين الأداء باستخدام ميزة "التحميل المسبق للإعلانات"، عليك إيقاف التخزين المؤقت المخصّص وتفويض هذه المسؤولية إلى Google Mobile Ads Unity Plugin.
تقدّم ميزة "التحميل المسبق للإعلانات" المزايا التالية مقارنةً بتحميل الإعلانات يدويًا:
- إدارة المراجع: تحتفظ هذه الميزة بالإعلانات المحمَّلة، ما يغنيك عن الاحتفاظ بالمراجع إلى أن تصبح جاهزًا لعرضها.
- إعادة التحميل التلقائي: يتم تلقائيًا تحميل إعلان جديد عندما تسحب إعلانًا من ذاكرة التخزين المؤقت.
- إعادة المحاولات المُدارة: تتم تلقائيًا إعادة محاولة الطلبات التي تعذّر إرسالها باستخدام التراجع الدليلي.
- التعامل مع انتهاء الصلاحية: يتم تلقائيًا إعادة تحميل الإعلانات قبل انتهاء صلاحيتها (عادةً بعد ساعة واحدة).
- تحسين ذاكرة التخزين المؤقت: إذا كنت تستخدم حجم ذاكرة تخزين مؤقت أكبر من واحد، 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 يستردّ الإعلان المتاح ويحمّل مسبقًا تلقائيًا
الإعلان التالي في الخلفية.
يستردّ المثال التالي إعلانًا محمَّلاً مسبقًا ويعرضه:
// 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 تلقائيًا حجم ذاكرة التخزين المؤقت لتحقيق التوازن بين استهلاك الذاكرة والمدة المستغرَقة لعرض الإعلانات. إذا كان تطبيقك يعرض الإعلانات قبل تحميل الإعلان التالي، يمكنك ضبط حجم ذاكرة تخزين مؤقت مخصّص لزيادة عدد الإعلانات المحتفظ بها في الذاكرة. ننصحك باستخدام حجم ذاكرة تخزين مؤقت يبلغ اثنين أو ثلاثة.
حدود ذاكرة التخزين المؤقت للتحميل المسبق
Google Mobile Ads Unity Plugin يفرض حدًا على مستوى التطبيق على إجمالي عدد الإعلانات المحمَّلة مسبقًا على مستوى جميع الوحدات الإعلانية وأرقام تعريف التحميل المسبق:
- الحدّ التلقائي: يحتفظ Google Mobile Ads Unity Plugin بحد أقصى ستة إعلانات محمَّلة مسبقًا في الذاكرة. تتم مشاركة هذا الحدّ على مستوى جميع الأشكال وأرقام تعريف التحميل المسبق.
- ننصحك بالاحتفاظ بحجم ذاكرة تخزين مؤقت يبلغ اثنين أو ثلاثة لكل رقم تعريف تحميل مسبق.
new PreloadConfiguration
{
AdUnitId = AD_UNIT_ID,
Request = new AdRequest(),
BufferSize = 5
};