מודעות באנר הן מודעות מלבניות שתופסות חלק מהפריסה של האפליקציה. הם להישאר במסך בזמן שהמשתמשים יוצרים אינטראקציה עם האפליקציה, בחלק העליון או התחתון של המסך או בשורה עם תוכן בזמן שהמשתמש גולל. מודעות באנר יכול להיות שיתבצע רענון אוטומטי של המודעות אחרי פרק זמן מסוים. לעיון בסקירה כללית בנושא מודעות באנר אפשר לקבל מידע נוסף.
במדריך הזה מוסבר איך להתחיל לעבוד עם מודעות מעוגנות מודעות באנר מותאמות, שממקסמת את הביצועים באמצעות אופטימיזציה של גודל המודעה בכל מכשיר רוחב מודעה שציינתם.
מודעות באנר מותאמות ומעוגנות הן מודעות עם יחס גובה-רוחב קבוע ולא מודעות רגילות מודעות בגודל קבוע. יחס הגובה-רוחב דומה לפורמט המקובל בתחום של 320x50. פעם אחת לציין את הרוחב המלא הזמין, תוצג לכם מודעה עם בגובה הזה. הגובה האופטימלי לא משתנה בין הבקשות באותו מכשיר, והתצוגות שמסביב לא צריכות לזוז כשהמודעה מתבצע רענון.
דרישות מוקדמות
- מבצעים את ההוראות במדריך לתחילת העבודה.
ביצוע בדיקות באמצעות מודעות בדיקה תמיד
כשיוצרים ובודקים אפליקציות, חשוב להשתמש במודעות בדיקה במקום במודעות בדיקה של מודעות בשידור חי. אם לא תעשו זאת, ייתכן שהחשבון שלכם יושעה.
הדרך הקלה ביותר לטעון מודעות בדיקה היא להשתמש במזהה הייעודי של יחידת מודעות לבדיקה עבור מודעות באנר ל-Android:
/6499/example/adaptive-banner
הוא הוגדר במיוחד להחזרת מודעות בדיקה עבור כל בקשה, ואפשר להשתמש בו באפליקציות שלכם תוך כדי תכנות, בדיקות וניפוי באגים. רק צריך לוודא צריך להחליף אותו במזהה יחידת המודעות שלך לפני פרסום האפליקציה.
מידע נוסף על אופן הפעולה של מודעות הבדיקה של Mobile Ads SDK זמין במאמר בדיקה מודעות.
הוספת AdManagerAdView לפריסה
השלב הראשון להצגת באנר הוא להציב AdManagerAdView
בפריסה של 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.
AdManagerAdView adView = new AdManagerAdView(this);
adView.setAdSizes(getAdSize());
adView.setAdUnitId("/6499/example/adaptive-banner");
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
// Start loading the ad in the background.
AdManagerAdRequest adRequest = new AdManagerAdRequest.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 = AdManagerAdView(this)
adView.adSizes = adSize
adView.adUnitId = "/6499/example/adaptive-banner"
// Create an ad request.
val adRequest = AdManagerAdRequest.Builder().build()
// Start loading the ad in the background.
adView.loadAd(adRequest)
}
טעינת מודעה
לאחר יצירת AdManagerAdView, השלב הבא הוא
לטעון מודעה. הפעולה הזו הסתיימה עם loadAd()
ל-method במחלקה AdManagerAdView
. נדרש AdManagerAdRequest
שמכיל מידע על סביבת זמן הריצה, כמו פרטי טירגוט, על
בקשה אחת להצגת מודעה.
כאן יש דוגמה שממחישה איך לטעון מודעה בשיטה onCreate()
של
Activity
:
Java
private void loadBanner() {
// Create a new ad view.
adView = new AdManagerAdView(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.
AdManagerAdRequest adRequest = new AdManagerAdRequest.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 = AdManagerAdRequest.Builder().build()
// Start loading the ad in the background.
adView.loadAd(adRequest)
}
אם הטעינה של המודעה נכשלת, אין צורך לבקש מודעה נוספת באופן מפורש, למשל כל עוד הגדרתם את יחידת המודעות לרענון, Google Mobile Ads SDK המערכת מתייחסת לכל קצב רענון שציינתם ב-Ad Manager ממשק אינטרנט. אם לא הפעלתם רענון, יהיה עליכם להנפיק בקשה.
זהו! האפליקציה מוכנה עכשיו להצגת מודעות באנר.
אירועי מודעות
אפשר להאזין לכמה אירועים במחזור החיים של המודעה, כולל טעינה, חשיפות וקליקים של מודעות, וגם אירועי פתיחה וסגירה של מודעה. מומלץ: כדי להגדיר את הקריאה החוזרת לפני טעינת הבאנר.Java
AdManagerAdView.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
AdManagerAdView.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()
מופעלת כשמשתמש חוזר לאפליקציה לאחר שצפה במודעה
כתובת היעד. האפליקציה יכולה להשתמש בה כדי להמשיך פעילויות שהושעו, או
לבצע כל עבודה אחרת שנדרשת כדי להתכונן לאינטראקציה.
|
onAdFailedToLoad() |
onAdFailedToLoad()
השיטה היחידה שכוללת פרמטר. פרמטר השגיאה של סוג
LoadAdError מתארת את השגיאה שאירעה. לקבלת מידע נוסף,
אפשר לעיין במאמר ניפוי באגים בשגיאות טעינת מודעות
תיעוד.
|
onAdImpression() |
onAdImpression()
שיטה מופעלת כאשר מתועדת חשיפה של מודעה.
|
onAdLoaded() |
onAdLoaded()
מופעלת לאחר סיום הטעינה של מודעה. אם רוצים להשהות
הוספה של AdManagerAdView
לפעילות או למקטע שלך, עד שתהיה בטוח שמודעה מסוימת תיטען, למשך
תוכלו לעשות את זה כאן.
|
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>
שיפור המהירות באמצעות חומרה מדריך מידע על אפשרויות לשליטה בהאצת החומרה. שימו לב לא ניתן להפעיל צפיות במודעה בודדת לשיפור המהירות באמצעות חומרה אם הפעילות מושבת, כך ששיפור המהירות באמצעות חומרה חייב להיות מופעל בפעילות עצמה.
ספירת חשיפות ידנית
ספירת חשיפות ידנית תואמת רק למודעות במכירה ישירה ולמכירה ישירה קמפיינים עם נכסי קריאייטיב שמועברים ישירות ב-Ad Manager. זה לא צריך להיות המשמש למילוי חוסרים (backfill) או למודעות ברשתות של צד שלישי. לפרטים נוספים אפשר לעיין בספירה חשיפות וקליקים.
אפשר לשלוח פינגים של חשיפות באופן ידני אל Ad Manager אם יש
לתנאים שקובעים מתי יש לתעד חשיפה. כדי לעשות את זה,
AdManagerAdRequest
לחשיפות ידניות לפני טעינת מודעה:
Java
AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder()
.setManualImpressionsEnabled(true)
.build();
Kotlin
val adRequest = AdManagerAdRequest.Builder()
.setManualImpressionsEnabled(true)
.build()
אם אתם בודקים שמודעה הוחזרה בהצלחה ומופיעה במסך, אפשר לתעד חשיפה באופן ידני:
Java
{ ad_view }.recordManualImpression();
Kotlin
AdManagerAdView.recordManualImpression()
אירועים באפליקציה
אירועי אפליקציה מאפשרים לכם ליצור מודעות שיכולות לשלוח הודעות לקוד האפליקציה שלהן. האפליקציה יכול לבצע פעולות על סמך ההודעות האלה.
אפשר להאזין לאירועים ספציפיים באפליקציה ב-Ad Manager באמצעות AppEventListener
.
האירועים האלה יכולים להתרחש בכל שלב במחזור החיים של המודעה, אפילו לפני
מתבצעת שיחה אל onAdLoaded()
.
Java
public interface AppEventListener {
void onAppEvent(String name, String info);
}
Kotlin
interface AppEventListener {
fun onAppEvent(name: String, info: String)
}
מתבצעת קריאה אל void onAppEvent(String name, String info)
כשמתרחש אירוע באפליקציה
במודעה. אפשר להטמיע את הממשק הזה בפעילות שלכם או בכל כלי אחר
object:
Java
import com.google.android.gms.ads.admanager.*;
public class BannerExample extends Activity implements AppEventListener {
}
Kotlin
import com.google.android.gms.ads.admanager.*
class BannerExample : Activity(), AppEventListener {
}
ולאחר מכן מועברות אל AdManagerAdView
:
Java
AdManagerAdView.setAppEventListener(this);
Kotlin
AdManagerAdView.appEventListener = this
הדוגמה הבאה מראה איך לשנות את צבע הרקע של האפליקציה בהתאם לאירוע באפליקציה בעל שם בצבע:
Java
@Override
public void onAppEvent(String name, String info) {
if ("color".equals(name)) {
if ("green".equals(info)) {
// Set background color to green.
} else if ("blue".equals(info)) {
// Set background color to blue.
} else {
// Set background color to black.
}
}
}
Kotlin
override fun onAppEvent(name: String?, info: String?) {
if (name == "color") {
when (info) {
"green" -> {
// Set background color to green.
}
"blue" -> {
// Set background color to blue.
}
else -> {
// Set background color to black.
}
}
}
}
והנה הקריאייטיב התואם ששולח הודעות אירועים של אפליקציות צבעוניות ה-Listener:
<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>
אפשר לעיין בדוגמה 'אירועים באפליקציה ב-Ad Manager' להטמעה של אירועי אפליקציה בקטע אפליקציית הדגמה ל-API.
משאבים נוספים
דוגמאות ב-GitHub
השלבים הבאים
מודעות באנר שאפשר לכווץ
מודעות באנר שאפשר לכווץ הן מודעות באנר שמוצגות בהתחלה בתור שכבת-על, עם לחצן שמכווץ את המודעה לגודל קטן יותר. כדאי להשתמש בה כדי לבצע אופטימיזציה נוספת של הביצועים. פרטים נוספים זמינים במאמר בנושא מודעות באנר שאפשר לכווץ.
מודעות באנר מותאמות שמוצגות בתוך הטקסט
מודעות באנר מותאמות שמוצגות בתוך הטקסט הן מודעות באנר גדולות וגבוהות יותר בהשוואה למודעות באנר מותאמות ומעוגנות באנרים. הגובה שלהם משתנה, והם יכולים להגיע לגובה של מסך המכשיר. מומלץ להשתמש במודעות באנר מותאמות שמוצגות בתוך הטקסט על פני מודעות באנר מותאמות ומעוגנות אפליקציות שמציבות מודעות באנר בתוכן שאפשר לגלול. למידע נוסף, ראו מודעות מוטבעות מודעות באנר פרטים.