מודעות באנר

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

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

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

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

יצירת באנר

השלב הראשון להצגת באנר הוא יצירת אובייקט 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);
    }
}

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

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

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

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

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

// 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;

        // 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.LoadAdError.GetMessage());
    }

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

    public void HandleOnAdClosed(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdClosed 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 כשמשתמש חוזר לאפליקציה אחרי צפייה בכתובת יעד של מודעה, השיטה הזו מופעלת. האפליקציה יכולה להשתמש בה כדי להמשיך את הפעילות שהושעה או כדי לבצע פעולות אחרות שנדרשות כדי להכין אותה לאינטראקציה.

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

גודל ב-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
מידע נוסף על מודעות באנר מותאמות, שמיועדות להחליף מודעות באנר חכמות.

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

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

bannerView.Destroy();

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

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

דוגמאות

סיפורי הצלחה