מודעות באנר

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

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

מודעות באנר מותאמות ומעוגנות הן מודעות עם יחס גובה-רוחב קבוע ולא מודעות רגילות מודעות בגודל קבוע. יחס הגובה-רוחב דומה לפורמט המקובל בתחום של 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() ל-method במחלקה 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 | קוטלין

השלבים הבאים

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

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

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

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

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