מודעות מותאמות הן נכסים שמצורפים למודעות ומוצגים למשתמשים דרך רכיבים של ממשק המשתמש שמותאמים לפלטפורמה. הן מוצגות באמצעות אותם סוגים של תצוגות שבהם אתם כבר משתמשים כדי ליצור את הפריסות, ואפשר לעצב אותן כך שיתאימו לעיצוב החזותי של האפליקציה.
כשטעינת מודעה מותאמת מתבצעת, האפליקציה מקבלת אובייקט מודעה שמכיל את הנכסים שלה, והאפליקציה (ולא 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 לטוען. ה-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 שיוחזרו יהיו שונות זו מזו, אבל לא מובטח שמודעות ממלאי שטחי פרסום שמור או מקונים מצד שלישי יהיו ייחודיות.
אם אתם משתמשים בתהליך בחירת רשת, אל תשתמשו בשיטה loadAds(), כי בקשות להצגת כמה מודעות מותאמות לא פועלות במזהים של יחידות מודעות שהוגדרו לתהליך בחירת רשת.
התקשרות חזרה
אחרי קריאה ל-loadAd(), מתבצעת קריאה חוזרת אחת לשיטות של מאזין שהוגדרו קודם כדי להעביר את אובייקט המודעה המותאמת או לדווח על שגיאה.
אחרי קריאה אל loadAds(), מתבצעות כמה קריאות חוזרות כאלה (לפחות אחת, ולא יותר ממספר בקשות להצגת מודעה שהתבקשו). אפליקציות שמבקשות כמה מודעות צריכות להפעיל את הפונקציה AdLoader.isLoading() בהטמעות של פונקציות הקריאה החוזרת כדי לקבוע אם תהליך הטעינה הסתיים.
דוגמה לבדיקת 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 או מודעות מותאמות במסך מלא.