דרישות מוקדמות
- Google Mobile Ads SDK גרסה 19.7.0 ואילך.
- כדאי לעיין במדריך לתחילת העבודה.
תמיד כדאי לבצע בדיקות באמצעות מודעות בדיקה
כשמפתחים ובודקים אפליקציות, חשוב להשתמש במודעות בדיקה ולא במודעות פעילות שמוצגות למשתמשים. אם לא תעשו את זה, אנחנו עשויים להשעות את החשבון שלכם.
הדרך הכי קלה לבצע בדיקות טעינה של מודעות היא להשתמש במזהה יחידת המודעות הייעודי לבדיקה של מודעות מתגמלות ב-Android:
ca-app-pub-3940256099942544/5224354917
הוא הוגדר במיוחד להחזרת מודעות בדיקה לכל בקשה, ואתם יכולים להשתמש בו באפליקציות שלכם בזמן כתיבת קוד, בדיקה וניפוי באגים. חשוב להקפיד להחליף אותו במזהה יחידת המודעות שלכם לפני פרסום האפליקציה.
מידע נוסף על אופן הפעולה של מודעות בדיקה ב-Mobile Ads SDK זמין במאמר מודעות בדיקה.
טעינה של אובייקט של מודעה מתגמלת
מודעות מתגמלות נטענות על ידי קריאה לשיטה הסטטית load()
במחלקה RewardedAd
והעברה של RewardedAdLoadCallback
. בדרך כלל זה נעשה בשיטה onCreate()
של Activity
.
שימו לב שכמו קריאות חוזרות (callback) אחרות לטעינת פורמטים, RewardedAdLoadCallback
משתמש ב-LoadAdError
כדי לספק פרטים מדויקים יותר על שגיאות.
Java
Kotlin
מחליפים את AD_UNIT_ID במזהה יחידת המודעות.
הגדרת FullScreenContentCallback
FullScreenContentCallback
מטפל באירועים שקשורים להצגת RewardedAd
. לפני שמציגים את RewardedAd
, צריך להגדיר את הקריאה החוזרת כך:
Java
rewardedAd.setFullScreenContentCallback(
new FullScreenContentCallback() {
@Override
public void onAdDismissedFullScreenContent() {
// Called when fullscreen content is dismissed.
Log.d(TAG, "Ad was dismissed.");
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
rewardedAd = null;
}
@Override
public void onAdFailedToShowFullScreenContent(AdError adError) {
// Called when fullscreen content failed to show.
Log.d(TAG, "Ad failed to show.");
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
rewardedAd = null;
}
@Override
public void onAdShowedFullScreenContent() {
// Called when fullscreen content is shown.
Log.d(TAG, "Ad showed fullscreen content.");
}
@Override
public void onAdImpression() {
// Called when an impression is recorded for an ad.
Log.d(TAG, "Ad recorded an impression.");
}
@Override
public void onAdClicked() {
// Called when an ad is clicked.
Log.d(TAG, "Ad was clicked.");
}
});
Kotlin
rewardedAd?.fullScreenContentCallback =
object : FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
// Called when fullscreen content is dismissed.
Log.d(TAG, "Ad was dismissed.")
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
rewardedAd = null
}
override fun onAdFailedToShowFullScreenContent(adError: AdError) {
// Called when fullscreen content failed to show.
Log.d(TAG, "Ad failed to show.")
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
rewardedAd = null
}
override fun onAdShowedFullScreenContent() {
// Called when fullscreen content is shown.
Log.d(TAG, "Ad showed fullscreen content.")
}
override fun onAdImpression() {
// Called when an impression is recorded for an ad.
Log.d(TAG, "Ad recorded an impression.")
}
override fun onAdClicked() {
// Called when an ad is clicked.
Log.d(TAG, "Ad was clicked.")
}
}
הצגת המודעה
כשמציגים מודעה מתגמלת, משתמשים באובייקט OnUserEarnedRewardListener
כדי לטפל באירועי תגמול.
Java
rewardedAd.show(
MainActivity.this,
new OnUserEarnedRewardListener() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
Log.d(TAG, "User earned the reward.");
// Handle the reward.
}
});
Kotlin
rewardedAd?.show(
this,
OnUserEarnedRewardListener { rewardItem ->
Log.d(TAG, "User earned the reward.")
// Handle the reward.
val rewardAmount = rewardItem.amount
val rewardType = rewardItem.type
},
)
[אופציונלי] אימות של קריאות חוזרות (callback) של אימות בצד השרת (SSV)
באפליקציות שדורשות נתונים נוספים בקריאות חוזרות (callback) של אימות בצד השרת, צריך להשתמש בתכונת הנתונים בהתאמה אישית של מודעות מתגמלות. כל ערך מחרוזת שמוגדר באובייקט של מודעה מתגמלת מועבר לפרמטר השאילתה custom_data
של הקריאה החוזרת לאימות מצד השרת. אם לא מוגדר ערך נתונים מותאם אישית, הערך של פרמטר השאילתה custom_data
לא יופיע בקריאה החוזרת של SSV.
דוגמת הקוד הבאה מראה איך להגדיר נתונים מותאמים אישית באובייקט של מודעה מתגמלת לפני שליחת בקשה להצגת מודעה.
Java
Kotlin
מחליפים את SAMPLE_CUSTOM_DATA_STRING בנתונים המותאמים אישית.
אם רוצים להגדיר את מחרוזת התגמול בהתאמה אישית, צריך לעשות זאת לפני הצגת המודעה.
שאלות נפוצות
- האם יש פסק זמן לשיחת ההפעלה?
- אחרי 10 שניות, Google Mobile Ads SDK מפעיל את הפונקציה
OnInitializationCompleteListener
גם אם רשת גישור עדיין לא סיימה את ההפעלה. - מה קורה אם חלק מרשתות הגישור לא מוכנות כשאני מקבל את הקריאה החוזרת לאתחול?
מומלץ לטעון מודעה בתוך הקריאה החוזרת של
OnInitializationCompleteListener
. גם אם רשת לבחירת רשת לא מוכנה, Google Mobile Ads SDK עדיין מבקש מהרשת הזו להציג מודעה. לכן, אם רשת גישור מסיימת את האתחול אחרי פסק הזמן, היא עדיין יכולה להציג מודעות לבקשות עתידיות בסשן הזה.אתם יכולים להמשיך לבדוק את סטטוס ההפעלה של כל המתאמים במהלך סשן האפליקציה על ידי קריאה ל-
MobileAds.getInitializationStatus()
.- איך אפשר לגלות למה רשת מסוימת לבחירת רשתות לא מוכנה?
AdapterStatus.getDescription()
מתארת למה מתאם לא מוכן לטפל בבקשות להצגת מודעות.- האם הקריאה החוזרת
onUserEarnedReward()
תמיד מופעלת לפני הקריאה החוזרתonAdDismissedFullScreenContent()
? במודעות Google, כל השיחות
onUserEarnedReward()
מתרחשות לפניonAdDismissedFullScreenContent()
. במקרה של מודעות שמוצגות באמצעות תהליך בחירת הרשת, ההטמעה של ה-SDK של רשת המודעות של הצד השלישי קובעת את סדר הקריאה החוזרת. ב-SDK של רשתות מודעות שמספקות קריאה חוזרת יחידה לסגירה עם פרטי תגמול, מתאם הגישור מפעיל אתonUserEarnedReward()
לפניonAdDismissedFullScreenContent()
.
דוגמאות ב-GitHub
השלבים הבאים
כדאי לעיין בנושאים הבאים: