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


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

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

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

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

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

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

  • 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 באמצעות הפעלת Cast של תצוגת ההורה אל סוג AdParent. תצוגת ההורה היא הפניה של jobject JNI למכשיר Android Activity או מצביע אל iOS UIView.

    // 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: השתמש בחוזים עתידיים כדי לעקוב אחר סטטוס ההשלמה של השיטה שיחות.

טעינת מודעה

הטעינה של מודעה מתבצעת באמצעות השיטה 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

מדריכי וידאו של Mobile Ads Garage

סיפורי הצלחה

השלבים הבאים