הגדרת מודעות באנר

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

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

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

לפני שממשיכים, מגדירים את Google Mobile Ads Unity Plugin.

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

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

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

/21775744923/example/interstitial

מפעילים את Google Mobile Ads Unity Plugin

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

using GoogleMobileAds;
using GoogleMobileAds.Api;

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

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

דוגמה ל-BannerView

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

יצירת תצוגת באנר

השלב הראשון בשימוש בתצוגת באנר הוא ליצור מופע של תצוגת באנר.

// Create a 320x50 banner at top of the screen.
adManagerBannerView = new AdManagerBannerView("AD_UNIT_ID", AdSize.Banner, AdPosition.Top);

מחליפים את AD_UNIT_ID במזהה יחידת המודעות.

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

  • ‫adUnitId: מזהה יחידת המודעות של מודעת הבאנר שרוצים לטעון.
  • ‫AdSize: גודל הבאנר שבו רוצים להשתמש.
  • ‫AdPosition: המיקום שבו רוצים להציב את תצוגות הבאנר.

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

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

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

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

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

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

// Create a 250x250 banner at the bottom of the screen.
AdSize adSize = new AdSize(250, 250);
adManagerBannerView = new AdManagerBannerView("AD_UNIT_ID", adSize, AdPosition.Bottom);

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

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

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

// Create a 250x250 banner at the bottom of the screen.
adManagerBannerView = new AdManagerBannerView("AD_UNIT_ID", AdSize.Banner, AdPosition.Top);

// Add multiple ad sizes.
adManagerBannerView.ValidAdSizes = new List<AdSize>
{
    AdSize.Banner,
    new AdSize(120, 20),
    new AdSize(250, 250),
};

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

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

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

כדי לטעון מודעה, יוצרים AdManagerAdRequest ומעבירים אותו ל-method‏ LoadAd().

// Send a request to load an ad into the banner view.
adManagerBannerView.LoadAd(new AdManagerAdRequest());

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

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

adManagerBannerView.OnBannerAdLoaded += () =>
{
    // Raised when an ad is loaded into the banner view.
};
adManagerBannerView.OnBannerAdLoadFailed += (LoadAdError error) =>
{
    // Raised when an ad fails to load into the banner view.
};
adManagerBannerView.OnAdPaid += (AdValue adValue) =>
{
    // Raised when the ad is estimated to have earned money.
};
adManagerBannerView.OnAdImpressionRecorded += () =>
{
    // Raised when an impression is recorded for an ad.
};
adManagerBannerView.OnAdClicked += () =>
{
    // Raised when a click is recorded for an ad.
};
adManagerBannerView.OnAdFullScreenContentOpened += () =>
{
    // Raised when an ad opened full screen content.
};
adManagerBannerView.OnAdFullScreenContentClosed += () =>
{
    // Raised when the ad closed full screen content.
};

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

כדי להשמיד את המודעה, צריך להפעיל את השיטה Destroy() כדי לשחרר משאבים:

if (adManagerBannerView != null)
{
    // Always destroy the banner view when no longer needed.
    adManagerBannerView.Destroy();
    adManagerBannerView = null;
}

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

רענון מודעה

אם הגדרתם את יחידת המודעות לרענון, אתם לא צריכים לבקש מודעה אחרת כשהמודעה לא נטענת. ‫Google Mobile Ads Unity Plugin מכבד את קצב הרענון שציינתם בממשק המשתמש של Ad Manager. אם לא הפעלתם את הרענון, שלחו בקשה חדשה. במאמר קצב הרענון של מודעות באפליקציות לנייד מוסבר איך להגדיר את קצב הרענון של יחידות המודעות.

מודעות באנר מותאמות גדולות הן פורמט גדול יותר שמיועד לפריסות ללא גלילה. בהשוואה למודעות באנר מותאמות ומעוגנות רגילות, במודעות האלה הגובה המקסימלי יכול להיות גדול יותר (עד 20% מגובה המסך, בין 50 ל-150dp). השטח המוגדל הזה מותאם לקטע וידאו.

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

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

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

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

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

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

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

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

adManagerBannerView.OnAppEventReceived += (AppEvent args) =>
{
    if (args.Name == "color")
    {
        Color color;
        if (ColorUtility.TryParseHtmlString(args.Data, out color))
        {
            renderer.material.color = 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: 0;
      left: 0;
      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>

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