טעינה של מודעה מותאמת

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

כשטעינת מודעה מותאמת מתבצעת, האפליקציה מקבלת אובייקט מודעה שמכיל את הנכסים שלה, והאפליקציה (ולא GMA Next-Gen 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, שמייצג את מספר המודעות. יכול להיות שGMA Next-Gen 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)
}

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

אם אתם משתמשים בתהליך בחירת הרשת, אל תקראו ל-method‏ 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>

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

הצגת המודעה

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

דוגמה

מורידים את האפליקציה לדוגמה שמדגימה את השימוש ב-GMA Next-Gen SDK ומפעילים אותה.