מודעות באנר

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

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

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

מסיימים את העבודה עם תחילת העבודה. האפליקציה Unity כבר צריכה לייבא את הפלאגין של Google Mobile Ads Unity.

יצירת באנרView

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

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

using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;
    ...
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize(initStatus => { });

        this.RequestBanner();
    }

    private void RequestBanner()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
    }
}

המבנה של BannerView כולל את הפרמטרים הבאים:

  • adUnitId - מזהה יחידת המודעות ב-AdMob שממנו יש לטעון את ה-BannerView.
  • AdSize - גודל המודעה ב-AdMob שבו רוצים להשתמש (לפרטים, מומלץ לעיין בגדלים של מודעות באנר).
  • AdPosition – המיקום שבו מודעת הבאנר צריכה להופיע. הערך 'AdPosition' מפרט את הערכים החוקיים של מיקומי המודעות.

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

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

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

// Create a 320x50 banner ad at coordinate (0,50) on screen.
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, 0, 50);

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

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

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

AdSize adSize = new AdSize(250, 250);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);

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

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

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

טעינת מודעה

אחרי יצירת הBannerView, אפשר לטעון מודעה בשלב הבא. הפעולה הזו בוצעה בשיטה loadAd() בכיתה BannerView. נדרש ארגומנט AdRequest, שמכיל מידע על זמן ריצה (כגון פרטי טירגוט) על בקשה אחת להצגת מודעה.

הנה דוגמה שממחישה איך לטעון מודעה:

...
    private void RequestBanner()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }
...

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

אירועי מודעות

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

...
using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;

    public void Start()
    {
        this.RequestBanner();
    }

    private void RequestBanner()
    {

        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Called when an ad request has successfully loaded.
        this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;
        // Called when an ad request failed to load.
        this.bannerView.OnAdFailedToLoad += this.HandleOnAdFailedToLoad;
        // Called when an ad is clicked.
        this.bannerView.OnAdOpening += this.HandleOnAdOpened;
        // Called when the user returned from the app after an ad click.
        this.bannerView.OnAdClosed += this.HandleOnAdClosed;
        // Called when the ad click caused the user to leave the application.
        this.bannerView.OnAdLeavingApplication += this.HandleOnAdLeavingApplication;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }

    public void HandleOnAdLoaded(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLoaded event received");
    }

    public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                            + args.Message);
    }

    public void HandleOnAdOpened(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdOpened event received");
    }

    public void HandleOnAdClosed(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdClosed event received");
    }

    public void HandleOnAdLeavingApplication(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLeavingApplication event received");
    }
}

האירוע OnAdFailedToLoad מכיל ארגומנטים מיוחדים לאירוע. היא מעבירה מופע של HandleAdFailedToLoadEventArgs עם Message שמתאר את השגיאה:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
  MonoBehaviour.print("Banner failed to load: " + args.Message);
  // Handle the ad failed to load event.
};
אירוע מודעהתיאור
OnAdLoaded האירוע OnAdLoaded מופעל כשהמודעה מסתיימת.
OnAdFailedToLoad האירוע OnAdFailedToLoad מופעל כשהמודעה לא נטענת. הפרמטר Message מתאר את סוג הכשל שאירע.
OnAdOpening השיטה הזו מופעלת כשהמשתמש מקיש על מודעה. אם אתה משתמש בחבילה של ניתוח נתונים כדי לעקוב אחר שיעור הקליקים, זה מקום טוב לתעד אותו.
OnAdClosed כאשר משתמש חוזר לאפליקציה לאחר צפייה בכתובת אתר יעד של מודעה, שיטה זו מופעלת. האפליקציה יכולה להשתמש בה כדי להמשיך בפעילויות שהושעו או לבצע פעולות אחרות נדרשות כדי להכין את האפליקציה לאינטראקציה.
OnAdLeavingApplication השיטה הזו מופעלת אחרי onAdOpened, כשמשתמש לוחץ על אפליקציה אחרת (כמו חנות Google Play) ומריץ את האפליקציה הנוכחית.

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

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

ניקוי מודעות באנר

בסיום השימוש ב-BannerView, יש להקפיד לקרוא את השיטה Destroy() לפני שמשחררים את ההפניה:

bannerView.Destroy();

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

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

דוגמאות

סיפורי הצלחה