מודעות מותאמות

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

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

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

בדף הזה מוסבר איך להשתמש ב-SDK כדי לטעון מודעות מותאמות. טיפ: מידע נוסף על מודעות מותאמות זמין במדריך שלנו למודעות מותאמות.

דוגמאות זמינות ל-Java ול-Kotlin.

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

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

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

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

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

פורמט מודעה מזהה לדוגמה של יחידת מודעות
מותאם ca-app-pub-3940256099942544/2247696110
סרטון מקורי ca-app-pub-3940256099942544/1044960115

טעינת מודעה

כדי לטעון מודעה מותאמת, מפעילים את method‏ NativeAdLoader.load(), שמקבל NativeAdRequest ו-NativeAdLoaderCallback.

import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoader
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoaderCallback
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdRequest

class NativeFragment : Fragment() {

  private var nativeAd: NativeAd? = null

  override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    loadAd()
  }

  private fun loadAd() {
    // Build an ad request with native ad options to customize the ad.
    val adRequest = NativeAdRequest
      .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
      .build()

    val adCallback =
      object : NativeAdLoaderCallback {
        override fun onNativeAdLoaded(nativeAd: NativeAd) {
          // Called when a native ad has loaded.
        }
        override fun onAdFailedToLoad(adError: LoadAdError) {
          // Called when a native ad has failed to load.
        }
      }

    // Load the native ad with our request and callback.
    NativeAdLoader.load(adRequest, adCallback)
  }

  companion object {
    // Sample native ad unit ID.
    const val AD_UNIT_ID = "ca-app-pub-3940256099942544/2247696110"
  }
}

הגדרת callback לאירוע של מודעה מותאמת

כשמטפלים ב-onNativeAdLoaded, מגדירים את NativeAd שהתקבל באמצעות NativeAdEventCallback כדי להגדיר פונקציות לקבלת אירועים של מחזור החיים של מודעות מותאמות:

  nativeAd.adEventCallback =
    object : NativeAdEventCallback {
      override fun onAdShowedFullScreenContent() {
        // Native ad showed full screen content.
      }
      override fun onAdDismissedFullScreenContent() {
        // Native ad dismissed full screen content.
      }
      override fun onAdFailedToShowFullScreenContent {
        // Native ad failed to show full screen content.
      }
      override fun onAdImpression() {
        // Native ad recorded an impression.
      }
      override fun onAdClicked() {
        // Native ad recorded a click.
      }
    }

אופציונלי: טעינה של כמה מודעות

כדי לטעון כמה מודעות, קוראים לפונקציה load() עם הפרמטר האופציונלי numberOfAds. הערך המקסימלי שאפשר להגדיר הוא 5, שמייצג את מספר המודעות. יכול להיות ש-Google Mobile Ads SDK (בגרסת בטא) לא יחזיר את המספר המדויק של המודעות שביקשתם.

private fun loadAd() {
  // Build an ad request with native ad options to customize the ad.
  val adRequest = NativeAdRequest
    .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
    .build()

  val adCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Called when a native ad has loaded.
      }
      override fun onAdFailedToLoad(adError: LoadAdError) {
        // Called when a native ad has failed to load.
      }
      override fun onAdLoadingCompleted() {
        // Called when all native ads have loaded.
      }
    }

  // Load the native ad with our request and callback.
  NativeAdLoader.load(adRequest, 3, adCallback)
}

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

אם אתם משתמשים בתהליך בחירת הרשת, אל תקראו לשיטה load(). בקשות לכמה מודעות מותאמות לא פועלות במזהים של יחידות מודעות שהוגדרו לבחירת רשת.

שיטות מומלצות

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

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

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

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

  • צריך להשמיד מודעות מותאמות כשאין בהן יותר שימוש.

שיפור המהירות באמצעות חומרה למודעות וידאו

כדי שמודעות וידאו יוצגו בהצלחה בתצוגות של מודעות מותאמות, צריך להפעיל האצת חומרה.

האצת חומרה מופעלת כברירת מחדל, אבל יכול להיות שאפליקציות מסוימות ישביתו אותה. אם זה המצב באפליקציה שלכם, מומלץ להפעיל האצת חומרה עבור מחלקות 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>

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

הצגת המודעה

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

דוגמה

מורידים ומריצים את האפליקציה לדוגמה שמדגימה את השימוש ב-Google Mobile Ads SDK (בטא).