מודעות מעברון (מדור קודם)

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

במדריך הזה מוסבר איך לשלב מודעות מעברון באפליקציה של Unity.

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

יצירה של מודעת מעברון

השלב הראשון להצגת מעברון הוא יצירת אובייקט InterstitialAd בסקריפט שמוצמד ל-GameObject.

using GoogleMobileAds.Api;
...

private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
}

הבנאי של InterstitialAd מכיל את הפרמטר הבא:

  • adUnitId - המזהה של יחידת המודעות ב-AdMob שממנו InterstitialAd צריך לטעון מודעות.

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

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

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

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

טעינת מודעה

לאחר יצירת התצוגה של InterstitialAd, השלב הבא הוא לטעון מודעה. זה נעשה באמצעות השיטה loadAd() במחלקה InterstitialAd. נדרש ארגומנט AdRequest, שכולל מידע על זמן הריצה (כמו פרטי טירגוט) של בקשה אחת להצגת מודעה.

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

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

הצגת המודעה

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

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

private void GameOver()
{
  if (this.interstitial.IsLoaded()) {
    this.interstitial.Show();
  }
}

אירועי מודעות

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

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

     // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);

    // Called when an ad request has successfully loaded.
    this.interstitial.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request failed to load.
    this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Called when an ad is shown.
    this.interstitial.OnAdOpening += HandleOnAdOpening;
    // Called when the ad is closed.
    this.interstitial.OnAdClosed += HandleOnAdClosed;

    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

public void HandleOnAdLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLoaded event received");
}

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                        + args.Message);
}

public void HandleOnAdOpening(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdOpening event received");
}

public void HandleOnAdClosed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdClosed event received");
}

האירוע OnAdFailedToLoad מכיל ארגומנטים של אירועים מיוחדים. היא מעבירה מופע של HandleAdFailedToLoadEventArgs עם Message שמתאר את השגיאה:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    print("Interstitial failed to load: " + args.Message);
    // Handle the ad failed to load event.
}
אירוע מודעהתיאור
OnAdLoaded האירוע OnAdLoaded מתבצע לאחר סיום הטעינה של מודעה.
OnAdFailedToLoad האירוע OnAdFailedToLoad מופעל כשטעינת מודעה נכשלת. הפרמטר Message מתאר את סוג הכשל שהתרחש.
OnAdOpening השיטה הזו מופעלת כשהמודעה מוצגת ומכסה את מסך המכשיר.
OnAdClosed השיטה הזו מופעלת כשמודעת המעברון נסגרת כי המשתמש מקיש על סמל הסגירה או משתמש בלחצן 'הקודם'. אם האפליקציה השהתה את פלט האודיו או את ה-game Loop, מומלץ להמשיך את ההפעלה הזו.

הסרת מודעות מעברון

כשמסיימים להשתמש ב-InterstitialAd, חשוב להפעיל את השיטה Destroy() לפני שמשחררים את ההפניה אליה:

interstitial.Destroy();

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

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

חשוב לשקול אם מודעות מעברון הן סוג המודעה שמתאים לאפליקציה שלכם.
מודעות מעברון פועלות בצורה הטובה ביותר באפליקציות עם נקודות מעבר טבעיות. נקודות כאלה נוצרות במהלך סיום של משימה בתוך האפליקציה, כמו שיתוף תמונה או השלמת שלב במשחק. מכיוון שהמשתמש מצפה להפסקה בפעולה, קל להציג מודעת ביניים מבלי להפריע לחוויית שלו. חשוב לשים לב באילו שלבים בתהליך העבודה של האפליקציה תציגו מודעות מעברון ואיך סביר שהמשתמש יגיב.
חשוב לזכור להשהות את הפעולה כשמציגים מודעת מעברון.
יש כמה סוגים שונים של מודעות מעברון: טקסט, תמונה, וידאו ועוד. חשוב לוודא שכאשר באפליקציה מוצגת מודעת מעברון, היא גם משעה את השימוש במשאבים מסוימים כדי לאפשר למודעה לנצל אותם. לדוגמה, כשמתקשרים כדי להציג מודעת מעברון, צריך להשהות את כל פלט האודיו שנוצר על ידי האפליקציה. אפשר להמשיך להשמיע צלילים ב-handler של האירועים של onAdClosed(), שיופעל אחרי שהמשתמש יסיים לקיים אינטראקציה עם המודעה. כמו כן, כדאי לשקול לעצור באופן זמני משימות חישוב אינטנסיביות (כמו משחק לולאה) בזמן שהמודעה מוצגת. כך תבטיחו שהמשתמשים לא יחוו גרפיקה איטית או תגובה איטית או וידאו מקוטע.
צריך לאפשר זמן טעינה תקין.
בדיוק כמו שחשוב לוודא שמודעות המעברון מוצגות בזמן המתאים, חשוב גם לוודא שהמשתמש לא יצטרך להמתין לטעינה שלהן. כשטוענים את המודעה מראש, מתקשרים למספר loadAd() לפני שמתכוונים להתקשר אל show(), וכך מוודאים שמודעת המעברון באפליקציה טעונה במלואה כשיגיע הזמן להציג אותה.
אין להציף את המשתמש במודעות.
הגברת התדירות של מודעות המעברון באפליקציה אולי נראית כדרך מצוינת להגדיל את ההכנסות, אבל היא גם עלולה לפגוע בחוויית המשתמש ולהוריד את שיעורי הקליקים. חשוב לוודא שהמשתמשים לא יפריעו לעיתים קרובות כך שהם לא יוכלו יותר ליהנות מהשימוש באפליקציה.

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

דוגמאות

סיפורי הצלחה