מודעות באנר

בחירת פלטפורמה: Android iOS Unity Flutter

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

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

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

  • קוראים את המדריך לתחילת העבודה.
  • אופציונלי: כדי לראות דוגמה להטמעה של מודעות באנר, בוחרים באחת מהאפליקציות לדוגמה הבאות:
    • הדוגמה למודעת באנר מעוגנת בגודל מותאם ב-Java, ב-Kotlin או ב-Jetpack Compose.
    • הדגמה של התכונות המתקדמות של Java או של Kotlin.

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

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

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

ca-app-pub-3940256099942544/9214589741

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

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

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

פריסה של XML

מוסיפים תצוגה לקובץ ה-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" />

Jetpack פיתוח נייטיב

  1. שלב ראשון, כוללים את המודול JetpackComposeDemo/compose-util. המודול הזה כולל פונקציות עזר ליצירת האובייקט והנכסים של AdView.

  2. שלב שני, יוצרים כיתה BannerAd באמצעות המודול compose-util:


// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
  Box(modifier = modifier.fillMaxWidth()) { BannerAd(adView, modifier) }
}

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

מגדירים את 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))

Jetpack פיתוח נייטיב


// Set the adaptive banner ad size with a given width.
val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)

הוספת 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)

Jetpack פיתוח נייטיב


val adView = remember { AdView(context) }

// Setup and load the adview.
// Set the unique ID for this specific ad unit.
adView.adUnitId = BANNER_AD_UNIT_ID

// Set the adaptive banner ad size with a given width.
val adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)

// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
  Box(modifier = modifier.fillMaxWidth()) { BannerAd(adView, modifier) }
}

טעינת מודעה

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

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

Java

AdManagerAdRequest adRequest = new AdManagerAdRequest.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;

Jetpack פיתוח נייטיב


DisposableEffect(Unit) {
  // Destroy the AdView to prevent memory leaks when the screen is disposed.
  onDispose { adView.destroy() }
}

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

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

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>

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

השלבים הבאים

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

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

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

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

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