מודעות באנר הן מודעות מלבניות שתופסות חלק מהפריסה של האפליקציה. הן נשארות על המסך בזמן שהמשתמשים מבצעים אינטראקציה עם האפליקציה, מעוגנות בחלק העליון או התחתון של המסך או מוטמעות בתוכן בזמן שהמשתמש גולל. ייתכן שיתבצע רענון אוטומטי של מודעות באנר אחרי פרק זמן מסוים. לקבלת מידע נוסף, קראו את המאמר סקירה כללית של מודעות באנר.
במדריך הזה מוסבר איך להתחיל לעבוד עם מודעות באנר מותאמות מעוגנות. המודעות האלה משפרות את הביצועים על ידי אופטימיזציה של גודל המודעה בכל מכשיר לפי רוחב המודעה שציינתם.
מודעות באנר מותאמות מעוגנות הן מודעות עם יחס גובה-רוחב קבוע, ולא מודעות רגילות בגודל קבוע. יחס הגובה-רוחב דומה ליחס 320x50 המקובל בתחום. אחרי שמציינים את הרוחב המלא הזמין, תוצג מודעה עם גובה אופטימלי לרוחב הזה. הגובה האופטימלי לא משתנה בבקשות מאותו מכשיר, והתצוגות מסביב לא צריכות לזוז כשהמודעה מתעדכנת.
דרישות מוקדמות
- מבצעים את ההוראות שמופיעות במדריך לתחילת העבודה.
ביצוע בדיקות תמיד באמצעות מודעות בדיקה
כשיוצרים ובודקים את האפליקציות, חשוב להשתמש במודעות בדיקה ולא במודעות פעילות בסביבת הייצור. אם לא תעשה זאת, ייתכן שהחשבון שלך יושעה.
הדרך הקלה ביותר לטעון מודעות בדיקה היא באמצעות המזהה הייעודי של יחידת המודעות לבדיקה עבור באנרים ל-Android:
ca-app-pub-3940256099942544/9214589741
היא הוגדרה במיוחד להחזרת מודעות בדיקה לכל בקשה, ואתם יכולים להשתמש בה באפליקציות שלכם בזמן תכנות, בדיקה וניפוי באגים. רק הקפידו להחליף אותה במזהה יחידת מודעות משלכם לפני פרסום האפליקציה.
רוצים לדעת איך מודעות הבדיקה ב-Mobile Ads SDK פועלות במאמר מודעות בדיקה?
הוספה של AdView לפריסה
השלב הראשון בהצגת באנר הוא להציב את AdView
בפריסה של Activity
או Fragment
שבהם רוצים להציג אותו.:
Java
private AdSize getAdSize() {
// Determine the screen width (less decorations) to use for the ad width.
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
display.getMetrics(outMetrics);
float density = outMetrics.density;
float adWidthPixels = adContainerView.getWidth();
// If the ad hasn't been laid out, default to the full screen width.
if (adWidthPixels == 0) {
adWidthPixels = outMetrics.widthPixels;
}
int adWidth = (int) (adWidthPixels / density);
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}
private void loadBanner() {
// Create a new ad view.
AdView adView = new AdView(this);
adView.setAdSizes(getAdSize());
adView.setAdUnitId("ca-app-pub-3940256099942544/9214589741");
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
Kotlin
// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
private val adSize: AdSize
get() {
val display = windowManager.defaultDisplay
val outMetrics = DisplayMetrics()
display.getMetrics(outMetrics)
val density = outMetrics.density
var adWidthPixels = binding.adViewContainer.width.toFloat()
if (adWidthPixels == 0f) {
adWidthPixels = outMetrics.widthPixels.toFloat()
}
val adWidth = (adWidthPixels / density).toInt()
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
}
private fun loadBanner() {
// Create a new ad view.
val adView = AdView(this)
adView.adSizes = adSize
adView.adUnitId = "ca-app-pub-3940256099942544/9214589741"
// Create an ad request.
val adRequest = AdRequest.Builder().build()
// Start loading the ad in the background.
adView.loadAd(adRequest)
}
טעינת מודעה
לאחר יצירת AdView , השלב הבא הוא לטעון מודעה. עושים את זה באמצעות השיטה loadAd()
במחלקה AdView
. הוא משתמש בפרמטר AdRequest
שכולל מידע על זמן הריצה, כמו פרטי הטירגוט, של בקשה אחת להצגת מודעה.
הנה דוגמה שממחישה איך לטעון מודעה בשיטת onCreate()
של Activity
:
Java
private void loadBanner() {
// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT);
adView.setAdSize(getAdSize());
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
Kotlin
private fun loadBanner() {
// This is an ad unit ID for a test ad. Replace with your own banner ad unit ID.
adView.adUnitId = "/6499/example/banner"
adView.setAdSize(adSize)
// Create an ad request.
val adRequest = AdRequest.Builder().build()
// Start loading the ad in the background.
adView.loadAd(adRequest)
}
אם המודעה לא נטענת, אין צורך לבקש מודעה נוספת באופן מפורש כל עוד הגדרתם את הרענון של יחידת המודעות. Google Mobile Ads SDK פועל בהתאם לקצב הרענון שהגדרתם AdMobבממשק האינטרנט. אם לא הפעלתם רענון, תצטרכו לשלוח בקשה חדשה.
זהו! האפליקציה שלכם מוכנה עכשיו להצגת מודעות באנר.
אירועי מודעות
אפשר לזהות כמה אירועים במחזור החיים של המודעה, כולל טעינה, חשיפה וקליק של המודעה ואירועי פתיחה וסגירה של המודעה. מומלץ להגדיר את הקריאה החוזרת לפני טעינת הבאנר.Java
AdView.setAdListener(new AdListener() {
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
@Override
public void onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
});
Kotlin
AdView.adListener = object: AdListener() {
override fun onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
override fun onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
override fun onAdFailedToLoad(adError : LoadAdError) {
// Code to be executed when an ad request fails.
}
override fun onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
override fun onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
override fun onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
}
כל אחת מהשיטות שניתן לשנות ב-AdListener
תואמת לאירוע במחזור החיים של מודעה.
שיטות שניתן לשנות | |
---|---|
onAdClicked() |
השיטה onAdClicked()
מופעלת כשמתועד קליק על מודעה.
|
onAdClosed() |
השיטה onAdClosed()
מופעלת כשמשתמש חוזר לאפליקציה אחרי שצפה בכתובת היעד של
המודעה. האפליקציה יכולה להשתמש בה כדי להמשיך פעילויות שהושעו או
לבצע כל פעולה אחרת שנדרשת כדי להתכונן לאינטראקציה.
עיין בדוגמה של AdMob
AdListener בהטמעה של שיטות מאזין המודעות
באפליקציית ההדגמה של Android API.
|
onAdFailedToLoad() |
השיטה onAdFailedToLoad() היא היחידה שכוללת פרמטר. פרמטר השגיאה מסוג LoadAdError מתאר איזו שגיאה התרחשה. מידע נוסף זמין במסמכי התיעוד בנושא ניפוי באגים של שגיאות בטעינת מודעות.
|
onAdImpression() |
השיטה onAdImpression()
מופעלת כשמתועדת חשיפה של מודעה.
|
onAdLoaded() |
השיטה onAdLoaded()
מתבצעת לאחר סיום הטעינה של המודעה. לדוגמה, אם רוצים לעכב את
הוספת הפרמטר AdView
לפעילות או למקטע עד שתהיה בטוחים שהמודעה תיטען, אפשר לעשות זאת כאן.
|
onAdOpened() |
השיטה onAdOpened()
מופעלת כשמודעה פותחת שכבת-על שמכסה את המסך.
|
שיפור המהירות באמצעות חומרה עבור מודעות וידאו
כדי שמודעות וידאו יוצגו בהצלחה בתצוגות של מודעות באנר, צריך להפעיל את שיפור המהירות באמצעות חומרה.
שיפור המהירות באמצעות חומרה מופעל כברירת מחדל, אבל חלק מהאפליקציות עשויות להשבית אותו. אם זה רלוונטי לאפליקציה שלכם, מומלץ להפעיל את שיפור המהירות באמצעות חומרה למחלקות Activity
שמשתמשות במודעות.
איך מפעילים את שיפור המהירות באמצעות חומרה
אם האפליקציה לא פועלת כראוי כששיפור המהירות באמצעות חומרה מופעל ברחבי העולם, אפשר לשלוט בה גם בפעילויות ספציפיות. כדי להפעיל או להשבית את שיפור המהירות באמצעות חומרה, אפשר להשתמש במאפיין android:hardwareAccelerated
לרכיבים <application>
ו-<activity>
ב-AndroidManifest.xml
. הדוגמה הבאה מפעילה שיפור מהירות באמצעות חומרה לכל האפליקציה, אבל משביתה אותה בפעילות אחת:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
למידע נוסף על האפשרויות לשליטה בהאצת חומרה, קראו את המדריך לשיפור המהירות באמצעות חומרה. שימו לב שלא ניתן להפעיל צפיות במודעות בודדות עבור שיפור מהירות באמצעות חומרה, אם הפעילות מושבתת, לכן יש להפעיל את שיפור המהירות באמצעות חומרה בפעילות עצמה.
מקורות מידע נוספים
דוגמאות ב-GitHub
השלבים הבאים
מודעות באנר ניתנות לכיווץ
מודעות באנר ניתנות לכיווץ הן מודעות באנר שמוצגות בהתחלה כשכבת-על גדולה יותר, עם לחצן לכיווץ המודעה לגודל קטן יותר. כדאי להשתמש בה כדי לבצע אופטימיזציה נוספת של הביצועים. פרטים נוספים זמינים במאמר מודעות באנר ניתנות לכיווץ.
מודעות באנר מותאמות המשולבות בתוכן הדף
מודעות באנר מותאמות מוטבעות הן מודעות באנר גדולות וגבוהות יותר בהשוואה למודעות באנר מותאמות מעוגנות. הגובה שלהם משתנה, והגובה שלהם יכול להיות זהה לזה של מסך המכשיר. מומלץ להשתמש במודעות באנר מותאמות מוטמעות במקום במודעות באנר מותאמות מעוגנות באפליקציות שמציבות מודעות באנר בתוכן שמאפשר גלילה. לפרטים נוספים, ראו מודעות באנר מותאמות מוטבעות.