צפיות במודעות באנר הן צפיות במודעות תמונה או טקסט מלבניות שתופסות מקום במסך. הן מוצגות במסך גם בזמן אינטראקציות של המשתמשים באפליקציה, ויכול להיות שיתבצע רענון אוטומטי שלהן אחרי פרק זמן מסוים. אם זו הפעם הראשונה שאתם משתמשים בפרסום בנייד, כדאי להתחיל מהם.
במדריך הזה נסביר איך לשלב תצוגות של מודעות באנר באפליקציה של Unity. בנוסף להוראות ולקטעי קוד, המדריך כולל גם מידע על בחירת הגודל הנכון למודעות באנר וקישורים למקורות מידע נוספים.
דרישות מוקדמות
- קוראים את המדריך לתחילת העבודה.
תמיד כדאי לבדוק באמצעות מודעות בדיקה
קוד לדוגמה שמכיל מזהה של יחידת מודעות שאפשר להשתמש בו כדי לבקש מודעות לבדיקה. הוא הוגדר במיוחד להחזיר מודעות בדיקה במקום מודעות ייצור בכל בקשה, כך שבטוח להשתמש בו.
עם זאת, אחרי שמירת אפליקציה בממשק האינטרנט של Ad Manager ויצירת מזהי יחידות מודעות משלכם לשימוש באפליקציה, עליכם להגדיר את המכשיר כמכשיר בדיקה במהלך הפיתוח.
/21775744923/example/adaptive-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), כדאי להמתין עד לקריאה החוזרת (callback) לפני טעינת המודעות, כדי לוודא שכל המתאמים של תהליך בחירת הרשת יופעלו.
דוגמה ל-BannerView
בדוגמת הקוד שבהמשך מוסבר איך להשתמש בתצוגת הבאנר. בדוגמה, יוצרים מופע של תצוגת באנר, משתמשים ב-AdManagerAdRequest
כדי לטעון מודעה לתצוגת הבאנר, ואז מרחיבים את היכולות שלה על ידי טיפול באירועים במחזור החיים.
יצירת תצוגת באנר
השלב הראשון בשימוש בתצוגת באנר הוא ליצור מופע של תצוגת באנר בסקריפט C# שמצורף ל-GameObject
.
// This ad unit is configured to always serve test ads.
private string _adUnitId = "/21775744923/example/adaptive-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;
}
}
זהו! עכשיו האפליקציה מוכנה להציג מודעות באנר.
רענון מודעה
אם הגדרתם את יחידת המודעות להתחדשות, לא תצטרכו לבקש מודעה אחרת אם המודעה לא נטענת. Google Mobile Ads SDK מתייחס לכל קצב רענון שציינתם בממשק המשתמש של Ad Manager. אם לא הפעלתם את הרענון, צריך לשלוח בקשה חדשה. פרטים נוספים על רענון יחידות המודעות, למשל הגדרת קצב רענון, זמינים במאמר קצב רענון של מודעות באפליקציות לנייד.
גדלים של מודעות באנר
בטבלה הבאה מפורטים הגדלים הרגילים של הבאנר.
גודל ב-dp (רוחב x גובה) | תיאור | זמינות | קבוע AdSize |
---|---|---|---|
320x50 | כרזות רגילות | טלפונים וטאבלטים | BANNER |
320x100 | מודעת באנר גדולה | טלפונים וטאבלטים | LARGE_BANNER |
300x250 | IAB Medium Rectangle | טלפונים וטאבלטים | 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>
מקורות מידע נוספים
- דוגמה ל-HelloWorld: הטמעה מינימלית של כל הפורמטים של המודעות.