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

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

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

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

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

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

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

Android

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

מפעילים את Mobile Ads SDK

לפני שטוענים מודעות, צריך להתקשר אל MobileAds.Initialize() כדי להפעיל את Mobile Ads SDK באפליקציה. יש לעשות זאת פעם אחת בלבד, רצוי בעת השקת האפליקציה.

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

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

הטמעה

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

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

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

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


  // These ad units are configured to always serve test ads.
#if UNITY_ANDROID
  private string _adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
  private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
  private string _adUnitId = "unused";
#endif

  private InterstitialAd _interstitialAd;

  /// <summary>
  /// Loads the interstitial ad.
  /// </summary>
  public void LoadInterstitialAd()
  {
      // Clean up the old ad before loading a new one.
      if (_interstitialAd != null)
      {
            _interstitialAd.Destroy();
            _interstitialAd = null;
      }

      Debug.Log("Loading the interstitial ad.");

      // create our request used to load the ad.
      var adRequest = new AdRequest();

      // send the request to load the ad.
      InterstitialAd.Load(_adUnitId, adRequest,
          (InterstitialAd ad, LoadAdError error) =>
          {
              // if error is not null, the load request failed.
              if (error != null || ad == null)
              {
                  Debug.LogError("interstitial ad failed to load an ad " +
                                 "with error : " + error);
                  return;
              }

              Debug.Log("Interstitial ad loaded with response : "
                        + ad.GetResponseInfo());

              _interstitialAd = ad;
          });
  }

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

כדי להציג מודעת מעברון נטענת, צריך להפעיל את השיטה Show() במכונה InterstitialAd. מודעות יכולות להופיע פעם אחת לכל טעינה. צריך להשתמש בשיטת CanShowAd() כדי לאמת שהמודעה מוכנה להצגה.

/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowInterstitialAd()
{
    if (_interstitialAd != null && _interstitialAd.CanShowAd())
    {
        Debug.Log("Showing interstitial ad.");
        _interstitialAd.Show();
    }
    else
    {
        Debug.LogError("Interstitial ad is not ready yet.");
    }
}

האזנה לאירועים של מודעות מעברון

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

private void RegisterEventHandlers(InterstitialAd interstitialAd)
{
    // Raised when the ad is estimated to have earned money.
    interstitialAd.OnAdPaid += (AdValue adValue) =>
    {
        Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
            adValue.Value,
            adValue.CurrencyCode));
    };
    // Raised when an impression is recorded for an ad.
    interstitialAd.OnAdImpressionRecorded += () =>
    {
        Debug.Log("Interstitial ad recorded an impression.");
    };
    // Raised when a click is recorded for an ad.
    interstitialAd.OnAdClicked += () =>
    {
        Debug.Log("Interstitial ad was clicked.");
    };
    // Raised when an ad opened full screen content.
    interstitialAd.OnAdFullScreenContentOpened += () =>
    {
        Debug.Log("Interstitial ad full screen content opened.");
    };
    // Raised when the ad closed full screen content.
    interstitialAd.OnAdFullScreenContentClosed += () =>
    {
        Debug.Log("Interstitial ad full screen content closed.");
    };
    // Raised when the ad failed to open full screen content.
    interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
    {
        Debug.LogError("Interstitial ad failed to open full screen content " +
                       "with error : " + error);
    };
}

פינוי מקום במודעות המעברון

כשמסיימים להשתמש ב-InterstitialAd, הקפידו לקרוא ל-method Destroy() לפני שתסירו את ההפניה אליה:

_interstitialAd.Destroy();

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

טעינה מראש של מודעת המעברון הבאה

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

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

private void RegisterReloadHandler(InterstitialAd interstitialAd)
{
    // Raised when the ad closed full screen content.
    interstitialAd.OnAdFullScreenContentClosed += ()
    {
        Debug.Log("Interstitial Ad full screen content closed.");

        // Reload the ad so that we can show another as soon as possible.
        LoadInterstitialAd();
    };
    // Raised when the ad failed to open full screen content.
    interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
    {
        Debug.LogError("Interstitial ad failed to open full screen content " +
                       "with error : " + error);

        // Reload the ad so that we can show another as soon as possible.
        LoadInterstitialAd();
    };
}

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

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

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

* תרחיש לדוגמה