טעינה מראש של מודעות (בטא)

טעינת מודעה מראש היא תכונה לטעינת מודעות שמנוהלת על ידי Google ב-Google Mobile Ads Unity Plugin. התכונה הזו מנהלת את הטעינה של המודעות ואת השמירה שלהן במטמון בשמכם. טעינת מודעה מראש מחייבת שינוי באופן שבו אתם מנהלים את טעינת המודעות. כדי לשפר את הביצועים באמצעות טעינה מראש של מודעות, צריך להשבית את השמירה במטמון בהתאמה אישית ולהעביר את האחריות הזו אל Google Mobile Ads Unity Plugin.

לטעינת מודעות מראש יש יתרונות לעומת טעינה ידנית של מודעות:

  • ניהול הפניות: שומר מודעות טעונות כך שלא תצטרכו לשמור הפניות עד שתהיו מוכנים להציג אותן.
  • טעינה אוטומטית מחדש: המערכת טוענת מודעה חדשה באופן אוטומטי כשמוציאים מודעה מהמטמון.
  • ניסיונות חוזרים מנוהלים: ניסיונות חוזרים אוטומטיים של בקשות שנכשלו באמצעות השהיה מעריכית לפני ניסיון חוזר (exponential backoff).
  • טיפול בתפוגה: רענון אוטומטי של המודעות לפני שהתוקף שלהן פג (בדרך כלל אחרי שעה).
  • אופטימיזציה של מטמון: אם משתמשים בגודל מטמון גדול מאחד, Google Mobile Ads Unity Plugin המערכת מבצעת אופטימיזציה של סדר המטמון כדי להציג את המודעה הטובה ביותר.

במדריך הזה מוסבר איך להגדיר טעינה מראש של מודעות, איך לבדוק אם יש מודעות שאפשר לטעון מראש ואיך להציג את המודעה שנטענה מראש.

דרישות מוקדמות

לפני שממשיכים במדריך הזה, צריך להגדיר את 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 שומר מודעות במטמון. כשרוצים להציג מודעה, מפעילים את method‏ 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");

האזנה לזמינות של מודעות שנטענו מראש

כדאי להירשם לאירועי טרום-טעינה כדי לקבל התראה כשטרום-הטעינה של המודעות מצליח, כשהוא נכשל או כשמטמון המודעות מתרוקן.

אירועי טעינה מוקדמת מיועדים למטרות ניתוח נתונים. בתוך קריאות חוזרות (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 מבצעת אופטימיזציה של שטח אחסון זמני כדי ליצור איזון בין צריכת הזיכרון לבין זמן האחזור של הצגת המודעות. אם האפליקציה מציגה מודעות לפני שהמודעה הבאה נטענת, אפשר להגדיר שטח אחסון זמני מותאם אישית כדי להגדיל את מספר המודעות שנשמרות בזיכרון.

// Define a PreloadConfiguration and set the buffer size to 2 preloaded ads.
new PreloadConfiguration
{
    AdUnitId = "AD_UNIT_ID",
    Request = new AdRequest(),
    BufferSize = 2
};

מגבלות מטמון טעינה מראש

Google Mobile Ads Unity Plugin אוכף מגבלה ברמת האפליקציה על המספר הכולל של מודעות שנטענו מראש בכל יחידות המודעות ובכל מזהי הטעינה מראש:

  • מגבלת ברירת המחדל: Google Mobile Ads Unity Plugin מכיל לכל היותר 6 מודעות טעונות מראש בזיכרון. מגבלה זו משותפת לכל הפורמטים ומזהי הטעינה המקדימה.
  • מומלץ להגדיר שטח אחסון זמני של שניים לכל מזהה טעינה מראש.