מודעות באנר

מודעות באנר הן מודעות מלבניות שתופסות חלק מהפריסה של האפליקציה. הן מוצגות במסך גם בזמן אינטראקציות של המשתמשים באפליקציה – מעוגנות בראש המסך או בתחתית המסך או משולבות בתוכן בזמן שמשתמשים גוללים בו. יכול להיות שיתבצע רענון אוטומטי של מודעות באנר אחרי פרק זמן מסוים. למידע נוסף, תוכלו לקרוא את הסקירה הכללית בנושא מודעות באנר.

במדריך הזה מוסבר איך להתחיל להשתמש במודעות באנר מותאמות ומעוגנות, שמאפשרות לכם לשפר את הביצועים על ידי אופטימיזציה של גודל המודעה לכל מכשיר לפי רוחב המודעה שציינתם.

מודעות באנר מותאמות ומעוגנות הן מודעות ביחס גובה-רוחב קבוע, ולא מודעות רגילות בגודל קבוע. יחס הגובה-רוחב דומה ליחס 320x50 שמקובל בתחום. אחרי שתציינו את רוחב המודעה המלא שזמין, המערכת תציג לכם מודעה עם גובה אופטימלי לרוחב הזה. הגובה האופטימלי לא משתנה בין בקשות מאותו מכשיר, והתצוגות שמסביב לא צריכות לזוז כשהמודעה מתעדכנת.

דרישות מוקדמות

תמיד כדאי לבדוק באמצעות מודעות בדיקה

כשאתם מפתחים ובודקים את האפליקציות, חשוב להשתמש במודעות בדיקה במקום במודעות פעילות בסביבת הייצור. אם לא תעשו זאת, החשבון שלכם עלול להיחסם.

הדרך הקלה ביותר לטעון מודעות לבדיקה היא להשתמש במזהה הייעודי של יחידת המודעות לבדיקה של מודעות באנר ל-Android:

ca-app-pub-3940256099942544/9214589741

הוא מוגדר במיוחד להחזרת מודעות בדיקה לכל בקשה, ותוכלו להשתמש בו באפליקציות שלכם בזמן הכתיבה, הבדיקה וניפוי הבאגים. רק חשוב להחליף אותו במזהה יחידת המודעות שלכם לפני פרסום האפליקציה.

מידע נוסף על אופן הפעולה של מודעות הבדיקה של Mobile Ads SDK זמין במאמר מודעות בדיקה.

הוספת AdView לפריסה

כדי ליצור באנר, קובעים את גודל המודעה. מבצעים את השלבים הבאים:

  1. יוצרים מודעה מותאמת ברוחב מלא עם עיגון:

    Java

    // Get the ad size with screen width.
    public AdSize getAdSize() {
      DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
      int adWidthPixels = displayMetrics.widthPixels;
    
      if (VERSION.SDK_INT >= VERSION_CODES.R) {
        WindowMetrics windowMetrics = this.getWindowManager().getCurrentWindowMetrics();
        adWidthPixels = windowMetrics.getBounds().width();
      }
    
      float density = displayMetrics.density;
      int adWidth = (int) (adWidthPixels / density);
      return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
    }
    

    Kotlin

    // Get the ad size with screen width.
    private val adSize: AdSize
      get() {
        val displayMetrics = resources.displayMetrics
        val adWidthPixels =
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            val windowMetrics: WindowMetrics = this.windowManager.currentWindowMetrics
            windowMetrics.bounds.width()
          } else {
            displayMetrics.widthPixels
          }
        val density = displayMetrics.density
        val adWidth = (adWidthPixels / density).toInt()
        return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
      }
    
    
  2. יוצרים AdView לפי גודל המודעה ומוסיפים אותו לפריסה של האפליקציה:

    Java

    // Create a new ad view.
    adView = new AdView(this);
    adView.setAdUnitId(AD_UNIT_ID);
    adView.setAdSize(getAdSize());
    
    // Replace ad container with new ad view.
    adContainerView.removeAllViews();
    adContainerView.addView(adView);
    

    Kotlin

    // Create a new ad view.
    val adView = AdView(this)
    adView.adUnitId = AD_UNIT_ID
    adView.setAdSize(adSize)
    this.adView = adView
    
    // Replace ad container with new ad view.
    binding.adViewContainer.removeAllViews()
    binding.adViewContainer.addView(adView)
    

טעינת מודעה

אחרי שמוסיפים את AdView, השלב הבא הוא לטעון מודעה. עושים זאת באמצעות השיטה loadAd() במחלקה AdView. הוא מקבל פרמטר AdRequest שמכיל מידע לגבי זמן הריצה, כמו פרטי טירגוט, לגבי בקשה אחת להצגת מודעה.

דוגמה לאופן שבו אפשר לטעון מודעה:

Java

// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

Kotlin

// Start loading the ad in the background.
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)

אם הבדיקה תסתיים בהצלחה, האפליקציה תהיה מוכנה להציג מודעות באנר.

רענון מודעה

אם הגדרתם את יחידת המודעות להתחדשות, לא תצטרכו לבקש מודעה אחרת אם המודעה לא נטענת. ‏Google Mobile Ads SDK מתייחס לכל קצב רענון שציינתם בממשק המשתמש של AdMob. אם לא הפעלתם את הרענון, צריך לשלוח בקשה חדשה. לפרטים נוספים על רענון של יחידות מודעות, למשל הגדרת קצב רענון, תוכלו לקרוא את המאמר שימוש ברענון אוטומטי במודעות באנר.

אירועי מודעות

אפשר להאזין למספר אירועים במחזור החיים של המודעה, כולל אירועי טעינה, חשיפה למודעה וקליק, וגם אירועי פתיחה וסגירה של מודעות. מומלץ להגדיר את הקריאה החוזרת לפני טעינת הבאנר.

Java

adView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});

Kotlin

adView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

כל אחת מהשיטות שאפשר לשנות ב-AdListener תואמת לאירוע במחזור החיים של המודעה.

שיטות שאפשר לשנות
onAdClicked() השיטה onAdClicked() מופעלת כשמתועד קליק על מודעה.
onAdClosed() השיטה onAdClosed() מופעלת כשמשתמש חוזר לאפליקציה אחרי שהוא צופה בכתובת היעד של מודעה. האפליקציה יכולה להשתמש בו כדי להמשיך פעילויות מושעות או לבצע כל פעולה אחרת שנדרשת כדי להתכונן לאינטראקציה. בדוגמה של AdListener ב-AdMob מוסבר איך מטמיעים את השיטות של AdListener באפליקציית הדגמה של Android API.
onAdFailedToLoad() השיטה onAdFailedToLoad() היא השיטה היחידה שכוללת פרמטר. פרמטר השגיאה מסוג LoadAdError מתאר את השגיאה שהתרחשה. למידע נוסף, עיינו במסמך ניפוי באגים של שגיאות טעינה של מודעות.
onAdImpression() השיטה onAdImpression() מופעלת כשמתועדת חשיפה של מודעה.
onAdLoaded() השיטה onAdLoaded() מופעלת כשהמודעה מסיימת לטעון. אם רוצים לדחות את ההוספה של AdView לפעילות או לקטע עד שמתקבלת ודאות שהמודעה תיטען, אפשר לעשות זאת כאן.
onAdOpened() השיטה onAdOpened() מופעלת כשמודעה פותחת שכבת-על שמכסה את המסך.

שיפור המהירות באמצעות חומרה במודעות וידאו

כדי שמודעות הווידאו יוצגו בהצלחה בתצוגות של מודעות הבאנר, צריך להפעיל את האצת החומרה.

האצת החומרה מופעלת כברירת מחדל, אבל יכול להיות שחלק מהאפליקציות יבחרו להשבית אותה. אם זה רלוונטי לאפליקציה שלכם, מומלץ להפעיל את שיפור המהירות באמצעות חומרה עבור כיתות 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>

מידע נוסף על אפשרויות לשליטה בשיפור המהירות באמצעות חומרה זמין במדריך בנושא שיפור המהירות באמצעות חומרה. חשוב לזכור: אי אפשר להפעיל שיפור מהירות באמצעות חומרה לצפיות ספציפיות במודעות אם הפעילות מושבתת, לכן צריך להפעיל את התכונה הזו בפעילות עצמה.

מקורות מידע נוספים

דוגמאות ב-GitHub

  • דוגמה למודעות באנר מותאמות ומעוגנות: Java | Kotlin
  • הדגמה של תכונות מתקדמות: Java | Kotlin

השלבים הבאים

מודעות באנר שאפשר לכווץ

מודעות באנר שאפשר לכווץ הן מודעות באנר שמוצגות בהתחלה כשכבת-על גדולה יותר, עם לחצן לכווץ את המודעה לגודל קטן יותר. מומלץ להשתמש בה כדי לשפר עוד יותר את הביצועים. פרטים נוספים זמינים במאמר מודעות באנר שאפשר לכווץ.

מודעות באנר מותאמות שמוצגות בתוך הטקסט

מודעות באנר מותאמות שמוצגות בתוך הטקסט הן מודעות באנר גדולות וגבוהות יותר בהשוואה למודעות באנר מותאמות ומעוגנות. הגובה שלהן משתנה, והן יכולות להיות בגובה המסך של המכשיר. מומלץ להשתמש במודעות באנר מותאמות שמוצגות בתוך הטקסט במקום במודעות באנר מותאמות שמוצגות כמודעות עוגן באפליקציות שמציגות מודעות באנר בתוכן שניתן לגלילה. פרטים נוספים זמינים במאמר מודעות באנר מותאמות שמוצגות בתוך הטקסט.

נושאים נוספים