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


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

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

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

  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

סיפורי הצלחה

השלבים הבאים