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

בחירת פלטפורמה: iOS Unity Flutter Android (Legacy)

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

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

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

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

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

לפני שממשיכים במדריך הזה, צריך להגדיר את Google Mobile Ads SDK (Legacy).

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

כשהאפליקציה מתחילה, קוראים לשיטה start פעם אחת. אחרי שמפעילים את השיטה start, ‏ Google Mobile Ads SDK (Legacy) טוען מראש באופן אוטומטי מודעות ומנסה שוב בקשות שנכשלו להגדרות שנטענו מראש.

בדוגמה הבאה מוצג איך מתחילים לטעון מראש מודעות:

Kotlin

// Define a PreloadConfiguration.
val configuration = PreloadConfiguration.Builder("AD_UNIT_ID").build()
// Start the preloading with a given preload ID, preload configuration.
InterstitialAdPreloader.start("AD_UNIT_ID", configuration)

Java

// Define a PreloadConfiguration.
PreloadConfiguration configuration = new PreloadConfiguration.Builder("AD_UNIT_ID").build();
// Start the preloading with a given preload ID, preload configuration.
InterstitialAdPreloader.start("AD_UNIT_ID", configuration);

מחליפים את AD_UNIT_ID במזהה יחידת המודעות.

אחזור והצגה של המודעה שנטענה מראש

כשמשתמשים בטעינת מודעה מראש, Google Mobile Ads SDK (Legacy) מחזיק מודעות שנשמרו במטמון. כשרוצים להציג מודעה, מפעילים את השיטה pollAd. ‫Google Mobile Ads SDK (Legacy) מאחזר מודעה זמינה וטוען מראש באופן אוטומטי את המודעה הבאה ברקע.

מומלץ להימנע מהפעלת ה-method‏ pollAd עד שמוכנים להציג מודעה. שמירת מודעות במטמון מאפשרת Google Mobile Ads SDK (Legacy) לרענן באופן אוטומטי מודעות שתוקפן פג ולבצע אופטימיזציה של המטמון.

בדוגמה הבאה מוצגת מודעה שנטענה מראש:

Kotlin

// pollAd() returns the next available ad and loads another ad in the background.
val ad = InterstitialAdPreloader.pollAd("AD_UNIT_ID")

// [Optional] Interact with the ad as needed.
ad?.onPaidEventListener = OnPaidEventListener {
  // [Optional] Send the impression-level ad revenue information to your preferred
  // analytics server directly within this callback.
}

// Show the ad immediately.
ad?.show(activity)

Java

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

if (ad != null) {
  // [Optional] Interact with the ad object as needed.
  ad.setOnPaidEventListener(
      adValue -> {
        // [Optional] Send the impression-level ad revenue information to your preferred
        // analytics server directly within this callback.
      });

  // Show the ad immediately.
  ad.show(activity);
}

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

כדי לבדוק אם יש מודעות זמינות, בוחרים באחת מהאפשרויות הבאות:

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

בדוגמה הבאה אפשר לראות איך בודקים את הזמינות של מודעות:

Kotlin

// Verify that a preloaded ad is available.
if (!InterstitialAdPreloader.isAdAvailable("AD_UNIT_ID")) {
  // No ads are available to show.
}

Java

// Verify that a preloaded ad is available.
if (!InterstitialAdPreloader.isAdAvailable("AD_UNIT_ID")) {
  // No ads are available to show.
}

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

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

אירועי טעינה מראש מיועדים למטרות ניתוח נתונים. בתוך קריאות חוזרות (callback) של אירוע טעינה מראש:

  • אל תתקשר אל start.
  • לא מומלץ להפעיל את הפונקציה pollAd אלא אם המודעה תוצג באופן מיידי.

בדוגמה הבאה מתבצעת הרשמה לאירועי מודעות:

Kotlin

// Define a callback to receive preload events.
val callback =
  object : PreloadCallbackV2() {
    override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo?) {
      // Called when preloaded ads are available.
    }

    override fun onAdsExhausted(preloadId: String) {
      // Called when no preloaded ads are available.
    }

    override fun onAdFailedToPreload(preloadId: String, adError: AdError) {
      // Called when preloaded ads failed to load.
    }
  }

Java

// Define a callback to receive preload events.
PreloadCallbackV2 callback =
    new PreloadCallbackV2() {
      @Override
      public void onAdPreloaded(
          @NonNull String preloadId, @Nullable ResponseInfo responseInfo) {
        // Called when preloaded ads are available.
      }

      @Override
      public void onAdsExhausted(@NonNull String preloadId) {
        // Called when no preloaded ads are available.
      }

      @Override
      public void onAdFailedToPreload(@NonNull String preloadId, @NonNull AdError adError) {
        // Called when preloaded ads failed to load.
      }
    };

הפסקת הטעינה מראש של מודעות

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

Kotlin

// Stops the preloading and destroy preloaded ads.
InterstitialAdPreloader.destroy("AD_UNIT_ID")
// Stops the preloading and destroy all ads.
InterstitialAdPreloader.destroyAll()

Java

// Stops the preloading and destroy preloaded ads.
InterstitialAdPreloader.destroy("AD_UNIT_ID");
// Stops the preloading and destroy all ads.
InterstitialAdPreloader.destroyAll();

הגדרת גודל המאגר

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

Kotlin

// Define a PreloadConfiguration and set the buffer size to 2 preloaded ads.
val configuration = PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(2).build()

Java

// Define a PreloadConfiguration and set the buffer size to 2 preloaded ads.
PreloadConfiguration configuration =
    new PreloadConfiguration.Builder("AD_UNIT_ID").setBufferSize(2).build();

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

‫Google Mobile Ads SDK (Legacy) אוכף מגבלה ברמת האפליקציה על המספר הכולל של מודעות שנטענו מראש בכל יחידות המודעות ובכל המזהים של הטעינה מראש:

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