מודעות באנר

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

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

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

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

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

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

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

ca-app-pub-3940256099942544/9214589741

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

רוצים לדעת איך מודעות הבדיקה ב-Mobile Ads SDK פועלות במאמר מודעות בדיקה?

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

השלב הראשון בהצגת באנר הוא להציב את AdView בפריסה של Activity או Fragment שבהם רוצים להציג אותו.:

Java

private AdSize getAdSize() {
  // Determine the screen width (less decorations) to use for the ad width.
  Display display = getWindowManager().getDefaultDisplay();
  DisplayMetrics outMetrics = new DisplayMetrics();
  display.getMetrics(outMetrics);

  float density = outMetrics.density;

  float adWidthPixels = adContainerView.getWidth();

  // If the ad hasn't been laid out, default to the full screen width.
  if (adWidthPixels == 0) {
    adWidthPixels = outMetrics.widthPixels;
  }

  int adWidth = (int) (adWidthPixels / density);
  return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}

private void loadBanner() {
  
  // Create a new ad view.
  AdView adView = new AdView(this);
  adView.setAdSizes(getAdSize());
  adView.setAdUnitId("ca-app-pub-3940256099942544/9214589741");

  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

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

Kotlin


// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
private val adSize: AdSize
  get() {
    val display = windowManager.defaultDisplay
    val outMetrics = DisplayMetrics()
    display.getMetrics(outMetrics)

    val density = outMetrics.density

    var adWidthPixels = binding.adViewContainer.width.toFloat()
    if (adWidthPixels == 0f) {
      adWidthPixels = outMetrics.widthPixels.toFloat()
    }

    val adWidth = (adWidthPixels / density).toInt()
    return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
  }

private fun loadBanner() {
  
  // Create a new ad view.
  val adView = AdView(this)
  adView.adSizes = adSize
  adView.adUnitId = "ca-app-pub-3940256099942544/9214589741"

  // Create an ad request.
  val adRequest = AdRequest.Builder().build()

  // Start loading the ad in the background.
  adView.loadAd(adRequest)
}

טעינת מודעה

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

הנה דוגמה שממחישה איך לטעון מודעה בשיטת onCreate() של Activity:

Java

private void loadBanner() {
  // Create a new ad view.
  adView = new AdView(this);
  adView.setAdUnitId(AD_UNIT);
  adView.setAdSize(getAdSize());
  
  // Replace ad container with new ad view.
  adContainerView.removeAllViews();
  adContainerView.addView(adView);

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

Kotlin

private fun loadBanner() {
  // This is an ad unit ID for a test ad. Replace with your own banner ad unit ID.
  adView.adUnitId = "/6499/example/banner"
  adView.setAdSize(adSize)
  
  // Create an ad request.
  val adRequest = AdRequest.Builder().build()

  // Start loading the ad in the background.
  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() מופעלת כשמשתמש חוזר לאפליקציה אחרי שצפה בכתובת היעד של המודעה. האפליקציה יכולה להשתמש בה כדי להמשיך פעילויות שהושעו או לבצע כל פעולה אחרת שנדרשת כדי להתכונן לאינטראקציה. עיין בדוגמה של 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

השלבים הבאים

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

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

מודעות באנר מותאמות המשולבות בתוכן הדף

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

עוד נושאים מעניינים