מודעות באנר

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

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

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

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

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

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

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

/21775744923/example/adaptive-banner

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

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

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

השלב הראשון להצגת באנר הוא להציב AdManagerAdView בפריסה של האפליקציה:

Java

// Create a new ad view.
adView = new AdManagerAdView(this);
adView.setAdUnitId(AD_UNIT);
adView.setAdSize(getAdSize());

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

Kotlin

// Create a new ad view.
val adView = AdManagerAdView(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)

טעינת מודעה

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

הדוגמה הבאה מראה איך לטעון מודעה:

Java

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

Kotlin

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

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

זהו! האפליקציה מוכנה עכשיו להצגת מודעות באנר.

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

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

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() מופעלת כשמשתמש חוזר לאפליקציה לאחר שצפה במודעה כתובת היעד. האפליקציה יכולה להשתמש בו כדי להמשיך פעילויות שהושעו, או לבצע כל עבודה אחרת שנדרשת כדי להתכונן לאינטראקציה.
onAdFailedToLoad() השיטה onAdFailedToLoad() היא השיטה היחידה שכוללת פרמטר. פרמטר השגיאה של סוג LoadAdError מתארת את השגיאה שאירעה. למידע נוסף, עיינו במסמך ניפוי באגים של שגיאות טעינה של מודעות.
onAdImpression() onAdImpression() שיטה מופעלת כאשר מתועדת חשיפה של מודעה.
onAdLoaded() onAdLoaded() מופעלת לאחר סיום הטעינה של מודעה. אם רוצים להשהות הוספה של AdManagerAdView לפעילות או למקטע שלך, עד שתהיה בטוח שמודעה מסוימת תיטען, למשך תוכלו לעשות את זה כאן.
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>

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

ספירת חשיפות ידנית

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

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

Java

AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder()
    .setManualImpressionsEnabled(true)
    .build();

Kotlin

val adRequest = AdManagerAdRequest.Builder()
    .setManualImpressionsEnabled(true)
    .build()

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

Java

{ ad_view }.recordManualImpression();

Kotlin

AdManagerAdView.recordManualImpression()

אירועים באפליקציה

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

אפשר להאזין לאירועים ספציפיים באפליקציה ב-Ad Manager באמצעות AppEventListener. האירועים האלה יכולים להתרחש בכל שלב במחזור החיים של המודעה, אפילו לפני מתבצעת שיחה אל onAdLoaded().

Java

public interface AppEventListener {
  void onAppEvent(String name, String info);
}

Kotlin

interface AppEventListener {
    fun onAppEvent(name: String, info: String)
}

מתבצעת קריאה אל void onAppEvent(String name, String info) כשמתרחש אירוע באפליקציה במודעה. אפשר להטמיע את הממשק הזה בפעילות שלכם או בכל כלי אחר object:

Java

import com.google.android.gms.ads.admanager.*;

public class BannerExample extends Activity implements AppEventListener {
}

Kotlin

import com.google.android.gms.ads.admanager.*

class BannerExample : Activity(), AppEventListener {
}

ולאחר מכן מועברות אל AdManagerAdView:

Java

AdManagerAdView.setAppEventListener(this);

Kotlin

AdManagerAdView.appEventListener = this

הדוגמה הבאה מראה איך לשנות את צבע הרקע של האפליקציה בהתאם לאירוע באפליקציה בעל שם בצבע:

Java

@Override
public void onAppEvent(String name, String info) {
  if ("color".equals(name)) {
    if ("green".equals(info)) {
      // Set background color to green.
    } else if ("blue".equals(info)) {
      // Set background color to blue.
    } else {
      // Set background color to black.
    }
  }
}

Kotlin

override fun onAppEvent(name: String?, info: String?) {
    if (name == "color") {
        when (info) {
            "green" -> {
                // Set background color to green.
            }
            "blue" -> {
                // Set background color to blue.
            }
            else -> {
                // Set background color to black.
            }
        }
    }
}

זהו הקריאייטיב התואם ששולח הודעות על אירועים באפליקציית הצבע ל-Listener:

<html>
<head>
  <script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
  <script>
    document.addEventListener("DOMContentLoaded", function() {
      // Send a color=green event when ad loads.
      admob.events.dispatchAppEvent("color", "green");

      document.getElementById("ad").addEventListener("click", function() {
        // Send a color=blue event when ad is clicked.
        admob.events.dispatchAppEvent("color", "blue");
      });
    });
  </script>
  <style>
    #ad {
      width: 320px;
      height: 50px;
      top: 0px;
      left: 0px;
      font-size: 24pt;
      font-weight: bold;
      position: absolute;
      background: black;
      color: white;
      text-align: center;
    }
  </style>
</head>
<body>
  <div id="ad">Carpe diem!</div>
</body>
</html>

אפשר לעיין בדוגמה 'אירועים באפליקציה ב-Ad Manager' להטמעה של אירועים באפליקציה בקטע אפליקציית הדגמה ל-API.

Java Kotlin

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

דוגמאות ב-GitHub

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

השלבים הבאים

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

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

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

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

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