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