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

בחירת פלטפורמה: Android iOS Unity Flutter

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

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

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

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

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

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

Android

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

הפעלה של Mobile Ads SDK

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

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.
        });
    }
}

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

הטמעה

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

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

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

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

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

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