מודעות באנר

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

המדריך הזה מכיל מידע על טעינת מודעת באנר מותאמת ומעוגנת באפליקציה ל-Android.

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

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

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

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

ca-app-pub-3940256099942544/9214589741

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

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

הגדרת מאגר התצוגות של המודעות

מוסיפים תצוגה לקובץ ה-XML של הפריסה, שתהיה הקונטיינר של מודעת הבאנר המותאמת אישית והמוצמדת:

<!-- Ad view container that fills the width of the screen and adjusts its
     height to the content of the ad. -->
<FrameLayout
        android:id="@+id/ad_view_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_alignParentBottom="true" />

הגדרת גודל המודעה

מגדירים את AdSize לסוג של באנר מותאם עם עוגן ברוחב שצוין:

Java

// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360));

Kotlin

// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360))

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

יוצרים AdView לפי גודל המודעה שרוצים להוסיף לפריסת האפליקציה:

Java

// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT_ID);
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360));

// 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
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360))
this.adView = adView

// Replace ad container with new ad view.
binding.adViewContainer.removeAllViews()
binding.adViewContainer.addView(adView)

טעינת מודעה

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

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

Java

AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

Kotlin

val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)

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

רענון מודעה

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

פרסום משאב של מודעה

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

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

Kotlin

// Remove banner from view hierarchy.
val parentView = adView?.parent
if (parentView is ViewGroup) {
  parentView.removeView(adView)
}

// Destroy the banner ad resources.
adView?.destroy()

// Drop reference to the banner ad.
adView = null

Java

// Remove banner from view hierarchy.
if (adView.getParent() instanceof ViewGroup) {
  ((ViewGroup) adView.getParent()).removeView(adView);
}
// Destroy the banner ad resources.
adView.destroy();
// Drop reference to the banner ad.
adView = null;

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

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

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 Demo.
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

השלבים הבאים

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

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

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

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

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