מודעות מותאמות הן נכסים שמצורפים למודעות ומוצגים למשתמשים דרך רכיבים של ממשק המשתמש שמותאמים לפלטפורמה. הן מוצגות באמצעות אותם סוגי תצוגות שבהם אתם כבר משתמשים כדי ליצור את הפריסות, ואפשר לעצב אותן כך שיתאימו לעיצוב החזותי של האפליקציה.
כאשר מודעה מותאמת נטענת, האפליקציה מקבלת אובייקט מודעה שמכיל את הנכסים שלה, והאפליקציה – ולא Google Mobile Ads SDK (Legacy) – אחראית להצגתם.
באופן כללי, יש שני שלבים להטמעה מוצלחת של מודעות מותאמות: טעינת מודעה באמצעות ה-SDK ואז הצגת תוכן המודעה באפליקציה.
בדף הזה מוסבר איך להשתמש ב-SDK כדי לטעון מודעות מותאמות. טיפ: מידע נוסף על מודעות מותאמות זמין במדריך למודעות מותאמות.
אתם יכולים גם לקרוא כמה סיפורי הצלחה של לקוחות: מקרה לדוגמה 1, מקרה לדוגמה 2.
דרישות מוקדמות
לפני שממשיכים, צריך להגדיר את Google Mobile Ads SDK (Legacy).
תמיד צריך לבדוק באמצעות מודעות בדיקה
כשאתם מפתחים ובודקים את האפליקציות, חשוב להשתמש במודעות בדיקה ולא במודעות פעילות.
הדרך הכי קלה לטעון מודעות בדיקה היא להשתמש במזהה יחידת המודעות הייעודי לבדיקה של מודעות מותאמות ב-Android:
ca-app-pub-3940256099942544/2247696110
הוא הוגדר במיוחד כדי להחזיר מודעות בדיקה לכל בקשה, ואתם יכולים להשתמש בו באפליקציות שלכם בזמן התכנות, הבדיקה וניפוי הבאגים. רק חשוב להחליף אותו במזהה יחידת המודעות שלכם לפני פרסום האפליקציה.
פרטים על מודעות בדיקה ב-Google Mobile Ads SDK (Legacy) זמינים במאמר הפעלת מודעות בדיקה.
טעינת מודעות
מודעות מותאמות נטענות באמצעות המחלקה AdLoader, שיש לה מחלקה משלה, Builder, שמאפשרת להתאים אותה אישית במהלך היצירה. כשמוסיפים מאזינים ל-AdLoader בזמן הבנייה, האפליקציה מציינת אילו סוגים של מודעות מותאמות היא מוכנה לקבל. ה-AdLoader מבקש רק את הסוגים האלה.
יצירת AdLoader
הקוד הבא מדגים איך ליצור AdLoader שיכול לטעון מודעות מותאמות:
Java
Kotlin
מחליפים את AD_UNIT_ID במזהה המכשיר של מכשיר הבדיקה.
ה-method forNativeAd() אחראית להכנת ה-AdLoader לפורמט NativeAd.
כשהמודעה נטענת, מתבצעת קריאה ל-method onNativeAdLoaded() של אובייקט ה-listener.
הגדרת AdListener עם AdLoader (אופציונלי)
כשיוצרים את ה-AdLoader, הפונקציה withAdListener מגדירה AdListener ל-loader. ה-method מקבלת AdListener כפרמטר היחיד שלה, שמקבל קריאות חוזרות (callbacks) מ-AdLoader כשמתרחשים אירועים במחזור החיים של המודעה:
Java
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
new AdListener() {});
Kotlin
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
object : AdListener() {}
)
בקשה להצגת מודעות
אחרי שמסיימים ליצור AdLoader, אפשר להשתמש בה כדי לבקש מודעות.
יש שתי שיטות לעשות את זה: loadAd() ו-loadAds().
loadAd()
השיטה הזו שולחת בקשה למודעה אחת.
Java
adLoader.loadAd(new AdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
השיטה הזו שולחת בקשה לכמה מודעות (עד חמש):
Java
// Load three native ads.
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
// Load three native ads.
adLoader.loadAds(AdRequest.Builder().build(), 3)
שתי השיטות מקבלות אובייקט AdRequest כפרמטר הראשון שלהן. זו אותה מחלקה של AdRequest שמשמשת למודעות באנר ולמודעות מעברון, ואפשר להשתמש בשיטות של המחלקה AdRequest כדי להוסיף מידע על טירגוט, בדיוק כמו בפורמטים אחרים של מודעות.
טעינה של כמה מודעות (אופציונלי)
ה-method loadAds() מקבלת פרמטר נוסף: מספר המודעות שה-SDK צריך לנסות לטעון לבקשה. המספר הזה מוגבל לחמש, ואין ערובה לכך שערכת ה-SDK תחזיר את המספר המדויק של בקשות להצגת מודעות שהתבקשו.
כל המודעות שיוחזרו מ-Google Ads יהיו שונות זו מזו, אבל לא מובטח שהמודעות ממלאי שטחי פרסום שמור או מקונים מצד שלישי יהיו ייחודיות.
אל תשתמשו ב-loadAds() אם אתם משתמשים בתהליך בחירת הרשת, כי בקשות לכמה מודעות מותאמות לא פועלות עם מזהים של יחידות מודעות שהוגדרו לתהליך בחירת הרשת.
התקשרות חזרה
אחרי קריאה ל-loadAd(), מתבצעת קריאה חוזרת (callback) אחת לשיטות המאזין שהוגדרו קודם כדי להעביר את אובייקט המודעה המותאמת או לדווח על שגיאה.
אחרי קריאה ל-loadAds(), מתבצעות כמה קריאות חוזרות כאלה (לפחות אחת, ולא יותר ממספר בקשות להצגת המודעות שהתבקשו). באפליקציות שמבקשות כמה מודעות, צריך להפעיל את AdLoader.isLoading() בהטמעות של הקריאה החוזרת (callback) כדי לקבוע אם תהליך הטעינה הסתיים.
בדוגמה הבאה אפשר לראות איך בודקים את isLoading() בקריאה החוזרת (callback) של onNativeAdLoaded():
Java
adLoaderBuilder
.forNativeAd(
nativeAd -> {
// This callback is invoked when a native ad is successfully loaded.
})
.build();
Kotlin
adLoaderBuilder
.forNativeAd { nativeAd ->
// This callback is invoked when a native ad is successfully loaded.
}
.build()
שחרור משאבים
חשוב להשתמש בשיטה destroy() במודעות מותאמות שנטענו. הפעולה הזו משחררת משאבים בשימוש ומונעת דליפות זיכרון.
מוודאים שכל ההפניות ל-NativeAd נהרסות ב-method onDestroy() של הפעילות.
ב-callback של onNativeAdLoaded, חשוב להשמיד את כל המודעות המותאמות הקיימות שההפניה אליהן תבוטל.
בדיקה חשובה נוספת היא אם הפעילות נהרסה. אם כן, צריך להפעיל את destroy() במודעה שהוחזרה ולחזור מיד:
Java
nativeAd.destroy();
Kotlin
nativeAd.destroy()
שיטות מומלצות
כשאתם טוענים מודעות, חשוב לפעול לפי הכללים הבאים.
באפליקציות שבהן מודעות מותאמות מוצגות ברשימה, צריך לשמור מראש במטמון את רשימת המודעות.
כששומרים מודעות במטמון מראש, צריך לנקות את המטמון ולטעון מחדש אחרי שעה.
- אל תקראו ל-
loadAd()או ל-loadAds()ב-AdLoaderעד שהבקשה הראשונה תסיים להיטען.
הגבילו את השמירה במטמון של מודעות מותאמות רק למה שצריך. לדוגמה, כשמבצעים שמירה מראש במטמון, צריך לשמור במטמון רק את המודעות שמופיעות מיד על המסך. מודעות מותאמות תופסות הרבה הזיכרון שבשימוש, ואם שומרים אותן במטמון בלי לבצע כיבוי סופי, הן עלולות לגרום לשימוש מוגזם בזיכרון.
להשמיד מודעות מותאמות כשהן כבר לא בשימוש.
שיפור מהירות באמצעות חומרה במודעות וידאו
כדי שמודעות וידאו יוצגו בהצלחה בתצוגות של המודעות מותאמות, צריך להפעיל שיפור מהירות באמצעות חומרה.
שיפור מהירות באמצעות חומרה מופעל כברירת מחדל, אבל באפליקציות מסוימות אפשר להשבית אותו. אם זה המצב באפליקציה שלכם, מומלץ להפעיל שיפור מהירות באמצעות חומרה במחלקות 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>
במדריך לשיפור מהירות באמצעות חומרה מפורט מידע נוסף על אפשרויות לשליטה בשיפור מהירות באמצעות חומרה. שימו לב: אי אפשר להפעיל שיפור מהירות באמצעות חומרה בתצוגות של מודעות בודדות אם ה-Activity מושבת, ולכן צריך להפעיל את שיפור המהירות באמצעות חומרה ב-Activity עצמו.
הצגת המודעה
אחרי שטוענים מודעה, כל מה שנותר לעשות הוא להציג אותה למשתמשים. מידע נוסף זמין במאמרים מודעה מותאמת מסוג Advanced או מודעות מותאמות במסך מלא.