מודעות באנר

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

במדריך הזה מוסבר איך לשלב תצוגות באנר באפליקציית 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), עליך להמתין עד שהקריאה החוזרת תתבצע לפני טעינת המודעות בתור פעולה זו תבטיח שכל המתאמים לתהליך בחירת הרשת (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: המיקום שבו צריך למקם את תצוגות הבאנר. AdPosition enum מציג את הערכים החוקיים של מיקום המודעה בדף.

חשוב לשים לב איך המערכת משתמשת ביחידות שונות של מודעות, בהתאם לפלטפורמה. צריך להשתמש יחידת מודעות ל-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, ממשיכים בטעינה מודעה עם השיטה 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 DestroyAd()
{
    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>

משאבים נוספים