שיתוף המשוב שלכם ועזרה בתכנון מפת הדרכים של Google Mobile Ads SDK. כדאי למלא את הסקר השנתי של Google Mobile Ads SDK לשנת 2023 לפני שהוא ייסגר ב-5 במאי 2023.

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

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

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

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

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

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

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

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

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

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

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

יישום

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

  1. טוענים מודעה.
  2. הרשמה לקריאה חוזרת (callback).
  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 ל-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);

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

צריך להרחיב את הכיתה 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 Warehouse

סיפורי הצלחה

השלבים הבאים