מודעות באנר

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

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

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

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

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

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

/6499/example/banner

הפעלה של 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.
        });
    }
}

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

דוגמה לתצוגת באנר

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

יצירה של תצוגת באנר

השלב הראשון בשימוש בתצוגת באנר הוא ליצור מופע של תצוגת באנר בסקריפט C# שמצורף ל-GameObject.


  // This ad unit is configured to always serve test ads.
  private string _adUnitId = "/6499/example/banner";

  AdManagerBannerView _bannerView;

  /// <summary>
  /// Creates a 320x50 banner view at top of the screen.
  /// </summary>
  public void CreateBannerView()
  {
      Debug.Log("Creating banner view");

      // If we already have a banner, destroy the old one.
      if (_bannerView != null)
      {
          DestroyAd();
      }

      // Create a 320x50 banner at top of the screen
      _bannerView = new AdManagerBannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
  }

ה-constructor של AdManagerBannerView כולל את הפרמטרים הבאים:

  • adUnitId: מזהה יחידת המודעות שממנו AdManagerBannerView צריך לטעון מודעות.
  • AdSize: גודל המודעה שבו אתם רוצים להשתמש. למידע נוסף, ראו גדלי מודעות.
  • AdPosition: המיקום שבו צריך למקם את תצוגות הבאנר. enum AdPosition מפרט את הערכים החוקיים של מיקומי מודעות בדף.

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

(אופציונלי) יוצרים תצוגת באנר עם מיקום מותאם אישית

כדי לשלוט טוב יותר על המיקום של AdManagerBannerView במסך בהשוואה למה שמוצע בערכי AdPosition, השתמשו ב-constructor שיש לו קואורדינטות x ו-y כפרמטרים:

// Create a 320x50 banner views at coordinate (0,50) on screen.
_bannerView = new AdManagerBannerView(_adUnitId, AdSize.Banner, 0, 50);

הפינה השמאלית העליונה של AdManagerBannerView ממוקמת בערכי ה-x וה-y שמועברים ל-constructor, כאשר המקור הוא בפינה השמאלית העליונה של המסך.

(אופציונלי) יוצרים תצוגת באנר עם גודל מותאם אישית

בנוסף לשימוש בקבוע AdSize, אפשר גם לציין גודל מותאם אישית למודעה:

// Use the AdSize argument to set a custom size for the ad.
AdSize adSize = new AdSize(250, 250);
_bannerView = new AdManagerBannerView(_adUnitId, adSize, AdPosition.Bottom);

(אופציונלי) כמה גדלים של מודעות

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

באפליקציה, מעבירים מספר פרמטרים של AdSize אל ValidAdSizes:

var adView = new AdManagerBannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
adView.ValidAdSizes = new List<AdSize>
{
    AdSize.Banner, new AdSize(120, 20), new AdSize(250, 250),
};

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

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

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

/// <summary>
/// Creates the banner view and loads a banner ad.
/// </summary>
public void LoadAd()
{
    // create an instance of a banner view first.
    if(_bannerView == null)
    {
        CreateAdManagerBannerView();
    }

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

    // send the request to load the ad.
    Debug.Log("Loading banner ad.");
    _bannerView.LoadAd(adRequest);
}

האזנה לאירועים של צפייה בבאנר

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

/// <summary>
/// listen to events the banner view may raise.
/// </summary>
private void ListenToAdEvents()
{
    // Raised when an ad is loaded into the banner view.
    _bannerView.OnBannerAdLoaded += () =>
    {
        Debug.Log("Banner view loaded an ad with response : "
            + _bannerView.GetResponseInfo());
    };
    // Raised when an ad fails to load into the banner view.
    _bannerView.OnBannerAdLoadFailed += (LoadAdError error) =>
    {
        Debug.LogError("Banner view failed to load an ad with error : "
            + error);
    };
    // Raised when the ad is estimated to have earned money.
    _bannerView.OnAdPaid += (AdValue adValue) =>
    {
        Debug.Log(String.Format("Banner view paid {0} {1}.",
            adValue.Value,
            adValue.CurrencyCode));
    };
    // Raised when an impression is recorded for an ad.
    _bannerView.OnAdImpressionRecorded += () =>
    {
        Debug.Log("Banner view recorded an impression.");
    };
    // Raised when a click is recorded for an ad.
    _bannerView.OnAdClicked += () =>
    {
        Debug.Log("Banner view was clicked.");
    };
    // Raised when an ad opened full screen content.
    _bannerView.OnAdFullScreenContentOpened += () =>
    {
        Debug.Log("Banner view full screen content opened.");
    };
    // Raised when the ad closed full screen content.
    _bannerView.OnAdFullScreenContentClosed += () =>
    {
        Debug.Log("Banner view full screen content closed.");
    };
}

להרוס את תצוגת הבאנר

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

/// <summary>
/// Destroys the banner view.
/// </summary>
public void DestroyBannerView()
{
    if (_bannerView != null)
    {
        Debug.Log("Destroying banner view.");
        _bannerView.Destroy();
        _bannerView = null;
    }
}

זהו! האפליקציה מוכנה עכשיו להצגת מודעות באנר.

בטבלה הבאה מפורטים הגדלים הרגילים של מודעות הבאנר.

גודל ב-dp (WxH) תיאור זמינות קבוע של גודל המודעה
320x50 כרזות רגילות טלפונים וטאבלטים BANNER
320x100 מודעת באנר גדולה טלפונים וטאבלטים LARGE_BANNER
300x250 מלבן בינוני של IAB טלפונים וטאבלטים MEDIUM_RECTANGLE
468x60 מודעת באנר בגודל מלא של IAB טאבלטים FULL_BANNER
728x90 לידרבורד של IAB טאבלטים LEADERBOARD
רוחב שסופק x גובה דינמי מודעת באנר מותאמת טלפונים וטאבלטים לא רלוונטי
רוחב המסך x 32|50|90 מודעת באנר חכמה טלפונים וטאבלטים SMART_BANNER
למידע נוסף על מודעות באנר מותאמות, שנועדו להחליף את מודעות הבאנר החכמות.

אירועים באפליקציה

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

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

namespace GoogleMobileAds.Api.AdManager;

/// The App event message sent from the ad.
public class AppEvent
{
    // Name of the app event.
    string Name;
    // Argument passed from the app event.
    string Value;
}

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

_bannerview.OnAppEventReceived += (AppEvent args) =>
{
    Debug.Log($"Received app event from the ad: {args.Name}, {args.Value}.");
};

הדוגמה הבאה מראה איך לשנות את צבע הרקע של האפליקציה בהתאם לאירוע באפליקציה שנתתם לו שם של צבע:

_bannerview.OnAppEventReceived += (AppEvent args) =>
{
  if (args.Name == "color")
  {
    Color color;
    if (ColorUtility.TryParseColor(arg.Value, out color))
    {
      gameObject.GetComponent<Renderer>().material.color = color;
    }
  }
};

זהו הקריאייטיב התואם ששולח אירוע אפליקציה בצבע:

<html>
<head>
  <script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
  <script>
    document.addEventListener("DOMContentLoaded", function() {
      // Send a color=green event when ad loads.
      admob.events.dispatchAppEvent("color", "green");

      document.getElementById("ad").addEventListener("click", function() {
        // Send a color=blue event when ad is clicked.
        admob.events.dispatchAppEvent("color", "blue");
      });
    });
  </script>
  <style>
    #ad {
      width: 320px;
      height: 50px;
      top: 0px;
      left: 0px;
      font-size: 24pt;
      font-weight: bold;
      position: absolute;
      background: black;
      color: white;
      text-align: center;
    }
  </style>
</head>
<body>
  <div id="ad">Carpe diem!</div>
</body>
</html>

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