מודעות מעברונים


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

במדריך הזה מוסבר איך לשלב מודעות ביניים באפליקציות ל-Android ול-iOS באמצעות Google Mobile Ads C++ SDK.

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

תמיד כדאי לבדוק באמצעות מודעות בדיקה

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

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

  • Android: ‏ca-app-pub-3940256099942544/1033173712
  • iOS: ‏ca-app-pub-3940256099942544/4411468910

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

מידע נוסף על אופן הפעולה של מודעות הבדיקה של Mobile Ads SDK זמין במאמר מודעות בדיקה.

הטמעה

השלבים העיקריים לשילוב מודעות מעברון הם:

  1. טוענים מודעה.
  2. הרשמה להתקשרות חזרה.
  3. הצגת המודעה וטיפול באירועים במחזור החיים שלה.

הגדרה של InterstitialAd

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

  1. מוסיפים את הכותרת הבאה לקוד C++‎ של האפליקציה:

     #include "firebase/gma/interstial_ad.h"

  2. מגדירים אובייקט InterstitialAd ויוצרים מופע שלו:

     firebase::gma::InterstitialAd* interstitial_ad;
     interstitial_ad = new firebase::gma::InterstitialAd();

  3. מאתחלים את המופע של InterstitialAd באמצעות הטיפוס של תצוגת ההורה שהועברה ל-AdParent. תצוגת ההורה היא הפניה jobject של JNI ל-Activity ב-Android או למצביע ל-UIView ב-iOS.

    // my_ad_parent is a jobject reference to an Android Activity or
    // a pointer to an iOS UIView.
    firebase::gma::AdParent ad_parent =
      static_cast<firebase::gma::AdParent>(my_ad_parent);
    firebase::Future<void> result = interstitial_ad->Initialize(ad_parent);
    
  4. במקום לשמור את העתיד כמשתנה, אפשר לבדוק מדי פעם את הסטטוס של פעולת האתחול על ידי הפעלת InitializeLastResult() באובייקט InterstitialAd. האפשרות הזו יכולה לעזור לכם לעקוב אחרי תהליך האיניציאליזציה בלולאת המשחק הגלובלית.

    // Monitor the status of the future in your game loop:
    firebase::Future<void> result = interstitial_ad->InitializeLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      // Initialization completed.
      if(future.error() == firebase::gma::kAdErrorCodeNone) {
        // Initialization successful.
      } else {
        // An error has occurred.
      }
    } else {
      // Initialization on-going.
    }
    

למידע נוסף על עבודה עם firebase::Future, ראו שימוש בחוזים עתידיים כדי לעקוב אחר סטטוס ההשלמה של קריאות ל-method.

טעינת מודעה

טעינת מודעה מתבצעת באמצעות השיטה LoadAd() באובייקט InterstitialAd. כדי להשתמש בשיטת הטעינה, צריך לאתחל את האובייקט InterstitialAd, וצריכים להיות לכם מזהה יחידת המודעות ואובייקט AdRequest. הפונקציה מחזירה firebase::Future שאפשר להשתמש בו כדי לעקוב אחרי המצב והתוצאה של פעולת הטעינה.

הקוד הבא מראה איך לטעון מודעה אחרי שה-InterstitialAd הופעל בהצלחה:

firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = interstitial_ad->LoadAd(interstitial_ad_unit_id, ad_request);

הרשמה לקריאות חוזרות

כדי לקבל התראות על הצגת מודעות מעברון ועל אירועים במחזור החיים שלהן, צריך להרחיב את הכיתה FullScreenContentListener. אפשר לרשום את המשנה בהתאמה אישית של FullScreenContentListener באמצעות השיטה InterstitialAd::SetFullScreenContentListener(), והיא תקבל קריאות חזרה (callbacks) כשהמודעה תוצג בהצלחה או שלא תוצג, וגם כשהיא תיסגר.

הקוד הבא מראה איך להרחיב את הכיתה ולהקצות אותה למודעה:

  class ExampleFullScreenContentListener
      : public firebase::gma::FullScreenContentListener {

   public:
    ExampleFullScreenContentListener() {}

    void OnAdClicked() override {
      // This method is invoked when the user clicks the ad.
    }

    void OnAdDismissedFullScreenContent() override {
     // This method is invoked when the ad dismisses full screen content.
    }

    void OnAdFailedToShowFullScreenContent(const AdError& error) override {
      // This method is invoked when the ad failed to show full screen content.
      // Details about the error are contained within the AdError parameter.
    }

    void OnAdImpression() override {
      // This method is invoked when an impression is recorded for an ad.
    }

    void OnAdShowedFullScreenContent() override {
      // This method is invoked when the ad showed its full screen content.
    }
  };

  ExampleFullScreenContentListener* full_screen_content_listener =
    new ExampleFullScreenContentListener();
  interstitial_ad->SetFullScreenContentListener(full_screen_content_listener);

InterstitialAd הוא אובייקט לשימוש חד-פעמי. המשמעות היא שאחרי שמודעה מעברון תוצג, לא ניתן להציג אותה שוב. מומלץ לטעון מודעה מעברון נוספת בשיטה OnAdDismissedFullScreenContent() של FullScreenContentListener, כדי שהמודעה המעברון הבאה תתחיל להיטען ברגע שהמודעה הקודמת תיסגר.

הצגת המודעה

מודעות מעברון צריכות להופיע כשיש השהיות טבעיות בזרימה של האפליקציה. דוגמה טובה לכך היא בין רמות במשחק, או אחרי שהמשתמש משלים משימה. אפשר להשתמש ב-FullScreenContentListener כדי לקבוע מתי מוצג התוכן במסך מלא של המודעה, אבל הערך העתידי שמוחזר על ידי Show() יאותת גם מתי המודעה הוצגה בהצלחה.

  firebase::Future<void> result = interstitial_ad->Show();

שיטות מומלצות

כדאי לבדוק אם מודעות מעברון הן סוג המודעה המתאים לאפליקציה שלכם.
מודעות מעברון פועלות בצורה הטובה ביותר באפליקציות עם נקודות מעבר טבעיות. נקודות כאלה נוצרות בסיום של משימה באפליקציה, כמו שיתוף תמונה או השלמת רמה במשחק. מכיוון שהמשתמש מצפה להפסקה בפעולה, קל להציג מודעת מעברון בלי להפריע לחוויית השימוש שלו. חשוב להביא בחשבון את הנקודות בתהליך העבודה של האפליקציה שבהן תציגו מודעות מעברון, ואת התגובה הצפויה של המשתמשים.
זכרו להשהות את הפעולה בזמן ההצגה של מודעת מעברון.
יש כמה סוגים שונים של מודעות מעברון: טקסט, תמונה, וידאו ועוד. חשוב לוודא שכאשר האפליקציה מציגה מודעה מסוג מודעה מעברון, היא גם משהה את השימוש במשאבים מסוימים כדי לאפשר למודעה לנצל אותם. לדוגמה, כשאתם קוראים להצגת מודעה מעברון, חשוב להשהות את כל הפלט של האודיו שנוצר על ידי האפליקציה. תוכלו להמשיך את הפעלת הצלילים בשיטה OnAdDismissedFullScreenContent של FullScreenContentListener המותקן, שתופעל כשהמשתמש יסיים את האינטראקציה עם המודעה. בנוסף, מומלץ להשהות באופן זמני משימות חישוב אינטנסיביות (כמו לולאה של משחק) בזמן הצגת המודעה. כך תוכלו להבטיח שהמשתמשים לא יראו גרפיקה איטית או לא רספונסיבית או סרטונים עם קטועים.
צריך לאפשר זמן טעינה מתאים.
כמו שחשוב להציג מודעות מעברון בזמן המתאים, חשוב גם לוודא שהמשתמשים לא יצטרכו להמתין עד שהן ייטענו. טעינה מראש של המודעה לפני שאתם מתכוונים להציג אותה יכולה להבטיח שבאפליקציה תהיה מוכנה מודעה מעברון טעונה במלואה כשהזמן יגיע להציג אותה.
אסור להציף את המשתמש במודעות.
הגדלת התדירות של מודעות מעברון באפליקציה עשויה להיראות כדרך מצוינת להגדלת ההכנסות, אבל היא גם עלולה לפגוע בחוויית המשתמש ולהוריד את שיעורי הקליקים. חשוב לוודא שההפרעות למשתמשים לא תהיינה תכופות מדי, עד כדי כך שהם לא יוכלו ליהנות מהשימוש באפליקציה.
אין להשתמש באירוע העתידי של סיום הטעינה כדי להציג את מודעת המעברון.
זה עלול לפגוע בחוויית המשתמש. במקום זאת, כדאי לטעון מראש את המודעה לפני שצריך להציג אותה.

מקורות מידע נוספים

דוגמה ב-GitHub

סרטוני הדרכה בנושא הסדנה הדיגיטלית של Google Ads

סיפורי הצלחה

השלבים הבאים