דרישות מוקדמות
- גרסה 19.7.0 ואילך של Google Mobile Ads SDK.
 - צריך לקרוא את המדריך לתחילת העבודה.
 
תמיד כדאי לבצע בדיקות באמצעות מודעות בדיקה
כשמפתחים ובודקים אפליקציות, חשוב להשתמש במודעות בדיקה ולא במודעות פעילות שמוצגות למשתמשים. אם לא תעשו את זה, אנחנו עשויים להשעות את החשבון שלכם.
הדרך הכי קלה לבצע בדיקות טעינה של מודעות היא להשתמש במזהה יחידת המודעות הייעודי לבדיקה של מודעות מתגמלות ב-Android:
ca-app-pub-3940256099942544/5224354917
היא הוגדרה במיוחד להחזרת מודעות בדיקה לכל בקשה, ואתם יכולים להשתמש בה באפליקציות שלכם בזמן כתיבת קוד, בדיקה וניפוי באגים. חשוב להקפיד להחליף אותו במזהה יחידת המודעות שלכם לפני פרסום האפליקציה.
מידע נוסף על אופן הפעולה של מודעות בדיקה ב-Google 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
  },
)
[אופציונלי] אימות קריאות חוזרות של אימות בצד השרת (SSV)
באפליקציות שנדרשים בהן נתונים נוספים בקריאות חוזרות (callback) של אימות בצד השרת (SSV), צריך להשתמש בתכונה 'נתונים מותאמים אישית' של מודעות מתגמלות. כל ערך מחרוזת שמוגדר באובייקט של מודעה מתגמלת מועבר לפרמטר השאילתה custom_data של הקריאה החוזרת ל-SSV. אם לא מוגדר ערך של נתונים מותאמים אישית, הערך של פרמטר השאילתה 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
השלבים הבאים
כדאי לעיין בנושאים הבאים: