מודעות מותאמות הן נכסים שמצורפים למודעות שמוצגות למשתמשים דרך רכיבים בממשק המשתמש. מותאמים לפלטפורמה. הן מוצגות לפי אותם סוגי צפיות שאתם כבר בונים את הפריסות, ואפשר לעצב אותן כך שיתאימו העיצוב החזותי של האפליקציה.
כשמודעה מותאמת נטענת, האפליקציה מקבלת אובייקטים של מודעה שמכיל את הנכסים שלה, ובאפליקציה – במקום ב-Google Mobile Ads SDK – אחראים להציג אותם.
ככלל, יש שני חלקים כדי להטמיע מודעות מותאמות: טעינת מודעה באמצעות ה-SDK והצגת תוכן המודעה באפליקציה.
בדף הזה מוסבר איך להשתמש ב-SDK כדי לטעון מודעות מותאמות. טיפ: מידע נוסף על מודעות מותאמות זמין במאמר מודעות מותאמות מדריך.
תוכלו גם לקרוא כמה סיפורי הצלחה של לקוחות: מקרה לדוגמה 1, מקרה לדוגמה 2.
דרישות מוקדמות
- מבצעים את ההוראות במדריך לתחילת העבודה.
ביצוע בדיקות באמצעות מודעות בדיקה תמיד
כשיוצרים ובודקים אפליקציות, חשוב להשתמש במודעות בדיקה במקום במודעות בדיקה של מודעות בשידור חי.
הדרך הקלה ביותר לטעון מודעות בדיקה היא להשתמש במזהה הייעודי של יחידת המודעות לבדיקה למודעות מותאמות ב-Android:
ca-app-pub-3940256099942544/2247696110
הוא הוגדר במיוחד להחזרת מודעות בדיקה עבור כל בקשה, ואפשר להשתמש בו באפליקציות שלכם תוך כדי תכנות, בדיקות וניפוי באגים. רק צריך לוודא צריך להחליף אותו במזהה יחידת המודעות שלך לפני פרסום האפליקציה.
מידע נוסף על אופן הפעולה של מודעות הבדיקה של Google Mobile Ads SDK מודעות בדיקה.
טעינת מודעות
המודעות המותאמות נטענות עם
AdLoader
כיתה,
ויש לו
Builder
כדי להתאים אותו אישית במהלך היצירה. על ידי הוספת מאזינים אל AdLoader
במהלך הבנייה של האפליקציה, היא מציינת אילו סוגים של מודעות מותאמות היא מוכנה
לקבל. לאחר מכן, AdLoader
מבקש רק את הסוגים האלה.
בניית AdLoader
הקוד הבא מדגים איך לפתח AdLoader
שיכול לטעון מודעות מותאמות
מודעות:
Java
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// Show the ad.
}
})
.withAdListener(new AdListener() {
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Handle the failure by logging, altering the UI, and so on.
}
})
.withNativeAdOptions(new NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build();
Kotlin
val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110}")
.forNativeAd { ad : NativeAd ->
// Show the ad.
}
.withAdListener(object : AdListener() {
override fun onAdFailedToLoad(adError: LoadAdError) {
// Handle the failure.
}
})
.withNativeAdOptions(NativeAdOptions.Builder()
// Methods in the NativeAdOptions.Builder class can be
// used here to specify individual options settings.
.build())
.build()
forNativeAd()
השיטה אחראית להכנת AdLoader
עבור הפורמט NativeAd
.
כאשר מודעה נטענת בהצלחה, onNativeAdLoaded()
של אובייקט ההאזנה
נקראת.
הגדרת AdListener באמצעות AdLoader (אופציונלי)
במהלך היצירה של AdLoader
,
withAdListener
מגדירה
AdListener
עבור
בטעינה. השיטה לוקחת את AdListener
כפרמטר הבודד שלה, שמקבל
קריאות חוזרות מ-AdLoader
כשאירועים במחזור החיים של המודעה מתרחשים:
Java
.withAdListener(new AdListener() {
// AdListener callbacks can be overridden here.
})
Kotlin
.withAdListener(object : AdListener() {
// AdListener callbacks can be overridden here.
})
בקשה להצגת מודעות
לאחר שמסיימים ליצור AdLoader
, אפשר להשתמש בו לשליחת בקשות להצגת מודעות.
יש שתי שיטות זמינות: loadAd()
ו-loadAds()
.
loadAd()
השיטה הזו שולחת בקשה למודעה אחת.
Java
adLoader.loadAd(new AdRequest.Builder().build());
Kotlin
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
השיטה הזו שולחת בקשה להצגת מספר מודעות (עד חמש):
Java
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
adLoader.loadAds(AdRequest.Builder().build(), 3)
שתי השיטות דורשות
AdRequest
בתור הפרמטר הראשון. ההגדרה הזו זהה
כיתה אחת (AdRequest
) משמשת במודעות באנר ובמודעות מעברון,
ואפשר להשתמש בשיטות של הכיתה AdRequest
כדי
להוסיף פרטי טירגוט, בדיוק כמו
שהייתם עושים עם פורמטים אחרים של מודעות.
טעינת מודעות מרובות (אופציונלי)
השיטה loadAds()
כוללת פרמטר נוסף: מספר המודעות ב-SDK
אמור לנסות להיטען עבור הבקשה. המספר הזה מוגבל ל-5,
אין הבטחה שערכת ה-SDK תחזיר את המספר המדויק של מודעות שהתבקשו.
מודעות Google שמוחזרות יהיו שונות זו מזו, למרות שמודעות מלאי שמור של שטחי פרסום או קונים של צד שלישי לא מובטח שהם יהיו ייחודיים.
אין להשתמש בשיטה loadAds()
אם אתם משתמשים בתהליך בחירת הרשת, כבקשות עבור
מודעות מותאמות מרובות אינן פועלות כרגע עבור מזהים של יחידות מודעות
מוגדר לגישור.
התקשרות חזרה
אחרי שיחה אל loadAd()
, תתבצע קריאה חוזרת יחידה
שיטות האזנה להעברת אובייקט של מודעה מותאמת או לדיווח על שגיאה.
אחרי שיחה אל loadAds()
, מתבצעות כמה קריאות חוזרות (callback) כאלה (לפחות אחת),
ולא יותר ממספר המודעות המבוקש). אפליקציות שמבקשות כמה מודעות
עליהם להפעיל את AdLoader.isLoading()
בהטמעות של הקריאה החוזרת (callback) שלהם
כדי לקבוע אם תהליך הטעינה הסתיים.
דוגמה שממחישה איך בודקים את isLoading()
התקשרות חזרה onNativeAdLoaded()
:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
...
// some code that displays the ad.
...
if (adLoader.isLoading()) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}
}).build();
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Kotlin
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd {
...
// some code that displays the ad.
...
if (adLoader.isLoading) {
// The AdLoader is still loading ads.
// Expect more adLoaded or onAdFailedToLoad callbacks.
} else {
// The AdLoader has finished loading ads.
}
}.build()
adLoader.loadAds(AdRequest.Builder().build(), 3)
שחרור משאבים
חשוב להשתמש בשיטה destroy()
במודעות מותאמות שנטענו. הגרסה הזו
משאבים שנעשה בהם שימוש ומניעה של דליפות זיכרון.
עליך לוודא שכל קובצי העזר של NativeAd
מושמדים
onDestroy()
.
בקריאה החוזרת (callback) של onNativeAdLoaded
, חשוב להשמיד את כל הגרסאות הקיימות
מודעות מותאמות יידחו.
בדיקת מפתח נוספת היא אם הפעילות מושמדת, ואם כן, צריך להתקשר אל destroy()
במכשיר
המודעה שהוחזרה וחוזרת באופן מיידי:
Java
final AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed()` is a method on Activity.
if (isDestroyed()) {
nativeAd.destroy();
return;
}
...
}
}).build();
Kotlin
lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110")
.forNativeAd { nativeAd ->
// If this callback occurs after the activity is destroyed, you
// must call destroy and return or you may get a memory leak.
// Note `isDestroyed` is a method on Activity.
if (isDestroyed) {
nativeAd.destroy()
return@forNativeAd
}
...
}.build()
שיטות מומלצות
צריך לפעול לפי הכללים הבאים כשטוענים מודעות.
אפליקציות שנעשה בהן שימוש במודעות מותאמות ברשימה צריכות לשמור מראש את רשימת המודעות.
כשמציגים מודעות במטמון, מנקים את המטמון וטוענים מחדש אחרי שעה.
אין להתקשר אל
loadAd()
אוloadAds()
ב-AdLoader
עד הבקשה מסתיימת.
שיפור המהירות באמצעות חומרה במודעות וידאו
כדי שמודעות הווידאו יוצגו בהצלחה בצפיות במודעות המותאמות, חומרה האצה חייבת להיות מופעלת.
ההגדרה 'שיפור מהירות באמצעות חומרה' מופעלת כברירת מחדל, אבל אפליקציות מסוימות להשבית אותה. אם זה רלוונטי לאפליקציה שלך, מומלץ להפעיל חומרה האצה של סוגי פעילות שמשתמשים במודעות.
איך מפעילים את שיפור המהירות באמצעות חומרה
אם האפליקציה לא פועלת כמו שצריך כשההגדרה 'שיפור מהירות באמצעות חומרה' מופעלת
בכל העולם, אפשר לשלוט בו גם בפעילויות נפרדות. כדי להפעיל או
להשבית את שיפור המהירות באמצעות חומרה, צריך להשתמש במאפיין 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>
להצגת האצה של HW מדריך עבור מידע נוסף על אפשרויות לשליטה בהאצת החומרה. הערה שלא ניתן להפעיל צפיות ספציפיות במודעה לשיפור המהירות באמצעות חומרה אם הפעילות מושבתת, לכן הפעילות עצמה חייבת להיות מהירה יותר באמצעות חומרה מופעל.
הצגת המודעה
לאחר שטענתם מודעה, כל מה שנשאר הוא להציג אותה למשתמשים שלכם. כדאי לעבור אל מודעות מותאמות מסוג Advanced מדריך כדי לראות איך עושים זאת.