מודעות באנר תופסות מקום בפריסה של האפליקציה, בחלק העליון או התחתון של מסך המכשיר. הן מוצגות במסך גם בזמן אינטראקציות של המשתמשים באפליקציה, ויכול להיות שיתבצע רענון אוטומטי שלהן אחרי פרק זמן מסוים.
המדריך הזה יעזור לכם להתחיל להשתמש במודעות באנר מעוגנות בגודל מותאם. מודעות באנר מותאמות ומעוגנות עוברות אופטימיזציה לגודל המודעה בכל מכשיר באמצעות רוחב המודעה שאתם מציינים.
מודעות באנר מותאמות ומעוגנות הן מודעות עם יחס גובה-רוחב קבוע ולא מודעות בגודל קבוע. יחס הגובה-רוחב דומה ל-320x50. אחרי שמציינים את הרוחב המלא שזמין, Google Mobile Ads SDK מחזירה מודעה עם גובה אופטימלי לרוחב הזה. הגובה האופטימלי של המודעה נשאר קבוע בבקשות שונות להצגת מודעה, והתוכן שמסביב למודעה נשאר במקומו כשהמודעה מתרעננת.
תמיד כדאי לבצע בדיקות באמצעות מודעות בדיקה
כשמפתחים ובודקים אפליקציות, חשוב להשתמש במודעות בדיקה ולא במודעות פעילות שמוצגות למשתמשים. אם לא תעשו את זה, אנחנו עשויים להשעות את החשבון שלכם.
הדרך הכי קלה לטעון מודעות בדיקה היא להשתמש במזהה הייעודי של יחידת מודעות הבדיקה למודעות באנר:
Android
ca-app-pub-3940256099942544/9214589741
iOS
ca-app-pub-3940256099942544/2435281174
יחידות המודעות לבדיקה מוגדרות כך שיחזירו מודעות בדיקה לכל בקשה, ואתם יכולים להשתמש בהן באפליקציות שלכם בזמן כתיבת קוד, בדיקה וניפוי באגים. רק חשוב להקפיד להחליף אותם במזהים של יחידות המודעות שלכם לפני פרסום האפליקציה.
אחזור גודל המודעה
כדי לבקש מודעת באנר עם גודל המודעה הנכון, פועלים לפי השלבים הבאים:
אפשר לקבל את רוחב המסך של המכשיר בפיקסלים שלא תלויים בדחיסות (dp) באמצעות
MediaQuery.of(context)
. אם אתם לא רוצים להשתמש ברוחב המסך המלא, אתם יכולים להגדיר רוחב משלכם.משתמשים בשיטה הסטטית המתאימה במחלקה
AdSize
כדי לקבל אובייקטAdSize
. לדוגמה, אפשר להשתמש ב-AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(int width)
כדי לקבל את גודל המודעה עבור הכיוון הנוכחי.
// Get an AnchoredAdaptiveBannerAdSize before loading the ad.
final size = await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
MediaQuery.sizeOf(context).width.truncate(),
);
טעינת מודעה
בדוגמה הבאה מוצגת טעינה של מודעת באנר:
void _loadAd() async {
// Get an AnchoredAdaptiveBannerAdSize before loading the ad.
final size = await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
MediaQuery.sizeOf(context).width.truncate(),
);
if (size == null) {
// Unable to get width of anchored banner.
return;
}
BannerAd(
adUnitId: _adUnitId,
request: const AdRequest(),
size: size,
listener: BannerAdListener(
onAdLoaded: (ad) {
// Called when an ad is successfully received.
debugPrint("Ad was loaded.");
setState(() {
_bannerAd = ad as BannerAd;
});
},
onAdFailedToLoad: (ad, err) {
// Called when an ad request failed.
debugPrint("Ad failed to load with error: $err");
ad.dispose();
},
),
).load();
}
אירועים של מודעות באנר
באמצעות BannerAdListener
, אפשר להגדיר את המערכת לזיהוי של אירועים במחזור החיים, כמו טעינה של מודעה. בדוגמה הזו מיושמת כל שיטה ומוצגת הודעה במסוף:
onAdOpened: (Ad ad) {
// Called when an ad opens an overlay that covers the screen.
debugPrint("Ad was opened.");
},
onAdClosed: (Ad ad) {
// Called when an ad removes an overlay that covers the screen.
debugPrint("Ad was closed.");
},
onAdImpression: (Ad ad) {
// Called when an impression occurs on the ad.
debugPrint("Ad recorded an impression.");
},
onAdClicked: (Ad ad) {
// Called when an a click event occurs on the ad.
debugPrint("Ad was clicked.");
},
onAdWillDismissScreen: (Ad ad) {
// iOS only. Called before dismissing a full screen view.
debugPrint("Ad will be dismissed.");
},
רענון מודעה
אם הגדרתם את יחידת המודעות כך שתתבצע בה רענון, לא צריך לשלוח בקשה להצגת מודעה נוספת אם המודעה לא נטענת. Google Mobile Ads SDK מכבד כל קצב רענון שציינתם בממשק המשתמש של AdMob. אם לא הפעלתם את הרענון, תצטרכו לשלוח בקשה חדשה. לפרטים נוספים על רענון יחידות של מודעות, כמו הגדרת קצב רענון, אפשר לעיין במאמר בנושא שימוש ברענון אוטומטי במודעות באנר.
הצגת מודעת באנר
כדי להציג BannerAd
כווידג'ט, צריך ליצור מופע של AdWidget
עם מודעה נתמכת אחרי הקריאה ל-load()
. אפשר ליצור את הווידג'ט לפני הקריאה ל-load()
, אבל צריך לקרוא ל-load()
לפני שמוסיפים אותו לעץ הווידג'טים.
AdWidget
הוא נגזר ממחלקת ה-Widget של Flutter, ואפשר להשתמש בו כמו בכל widget אחר. ב-iOS, חשוב לוודא שמיקמתם את הווידג'ט בווידג'ט עם רוחב וגובה מוגדרים. אחרת, יכול להיות שהמודעה לא תוצג. אפשר להציב BannerAd
בתוך גורם מכיל בגודל שמתאים למודעה:
if (_bannerAd != null)
Align(
alignment: Alignment.bottomCenter,
child: SafeArea(
child: SizedBox(
width: _bannerAd!.size.width.toDouble(),
height: _bannerAd!.size.height.toDouble(),
child: AdWidget(ad: _bannerAd!),
),
),
),
צריך להשמיד מודעה כשאין יותר צורך בגישה אליה. השיטה המומלצת לקריאה ל-dispose()
היא אחרי שהרכיב AdWidget
מוסר מעץ הווידג'טים או בקריאה חוזרת (callback) של BannerAdListener.onAdFailedToLoad()
.
זהו! האפליקציה שלך מוכנה עכשיו להצגת מודעות באנר.
הגבלת הגלילה ב-Android 9 ומטה
ידוע לנו שבמכשירים ישנים יותר או במכשירים חלשים יותר שמופעלת בהם מערכת Android 9 או גרסה קודמת, יכולים להיות ביצועים לא אופטימליים כשמוצגות מודעות באנר מוטמעות בתצוגות שניתן לגלול בהן. מומלץ להשתמש בסוגי הבאנרים האלה רק ב-Android מגרסה 10 ואילך. לא תהיה השפעה על מודעות באנר במיקום קבוע, כמו מודעות באנר מעוגנות, ואפשר להשתמש בהן עם ביצועים אופטימליים בכל רמות Android API.
דוגמה מלאה ב-GitHub
דוגמה מלאה לשילוב של מודעת באנר שמוסבר בדף הזה מופיעה בקובץ banner_example.
מידע על סוגים אחרים של מודעות באנר
כדאי להכיר את סוגי הבאנרים האחרים שמוגדרים בקטע הזה עבור אפליקציית Flutter.
מודעות באנר מותאמות שמוצגות בתוך הטקסט
הגובה של מודעות באנר מותאמות שמוצגות בתוך הטקסט משתנה בהתאם למסך שבו הן מופיעות, והן גדולות וגבוהות יותר ממודעות באנר מותאמות ומעוגנות. מומלץ להשתמש במודעות באנר בגודל מותאם שמוצגות בתוך הטקסט באפליקציות שבהן מודעות הבאנר מוצגות בתוכן שניתן לגלילה, ולא במודעות באנר מעוגנות בגודל מותאם. פרטים נוספים זמינים במאמר בנושא מודעות באנר מותאמות שמוצגות בתוך התוכן.
מודעות באנר שאפשר לכווץ
מודעות באנר שאפשר לכווץ הן מודעות באנר שמוצגות בהתחלה כשכבת-על גדולה יותר, עם לחצן לכווץ את המודעה לגודל קטן יותר. כדאי להשתמש בהודעה הזו כדי לשפר עוד יותר את הביצועים. פרטים נוספים זמינים במאמר בנושא מודעות באנר שאפשר לכווץ.