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

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

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

טעינת מודעה

כדי לשלוח בקשה משולבת למודעות מותאמות ולמודעות באנר:

  1. מעבירים את הסוג NativeAdType.NATIVE ואת הסוג NativeAdType.BANNER כרשימה ב-NativeAdRequest.

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

בדוגמאות הבאות נטענת מודעה משולבת של מודעה מותאמת ומודעת באנר:

Kotlin

val adRequest =
  NativeAdRequest.Builder(AD_UNIT_ID, listOf(NativeAdType.NATIVE, NativeAdType.BANNER))
    // Use setAdSize() or setAdSizes() depending on if you want multiple ad sizes or not.
    .setAdSizes(listOf(AdSize.BANNER, AdSize.LARGE_BANNER))
    .build()

// Load the native and banner ad with the ad request and callback.
NativeAdLoader.load(adRequest, getNativeAdLoaderCallback())

Java

NativeAdRequest adRequest =
    new NativeAdRequest.Builder(AD_UNIT_ID, List.of(NativeAdType.NATIVE, NativeAdType.BANNER))
        // Use setAdSize() or setAdSizes() depending on if you want multiple ad sizes or not.
        .setAdSizes(Arrays.asList(AdSize.BANNER, AdSize.LARGE_BANNER))
        .build();

// Load the native and banner ad with the ad request and callback.
NativeAdLoader.load(adRequest, getNativeAdLoaderCallback());

צריך להגדיר גודל מודעה שקטן מגודל המסך של המכשיר או שווה לו. כדי לקבוע את גודל המסך המקסימלי, משתמשים ב-method‏ Resources.getDisplayMetrics. המידות של האובייקט AdSize מוגדרות בפיקסלים שלא תלויים בצפיפות (dp). כשמשווים, צריך להמיר את גודל המסך מפיקסלים ל-dp. לפרטים על מגבלות הגודל, קראו את המאמר פתרון בעיות שקשורות לחשיפות שלא מולאו ב-Ad Manager.

מקבלים את המודעה מהאובייקט NativeAdLoaderCallback

בהתאם לסוג המודעה שנטענה בהצלחה, האובייקט NativeAdLoaderCallback קורא ל-method‏ onNativeAdLoaded() למודעות מותאמות ול-method‏ onBannerAdLoaded() למודעות באנר.

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

Kotlin

private fun getNativeAdLoaderCallback(): NativeAdLoaderCallback {
  return object : NativeAdLoaderCallback {
    override fun onNativeAdLoaded(nativeAd: NativeAd) {
      // Called when a native ad has loaded.
    }

    override fun onBannerAdLoaded(bannerAd: BannerAd) {
      // Called when a banner ad has loaded.
    }
  }
}

Java

private NativeAdLoaderCallback getNativeAdLoaderCallback() {
  return new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
      // Called when a native ad has loaded.
    }

    @Override
    public void onBannerAdLoaded(@NonNull BannerAd bannerAd) {
      // Called when a banner ad has loaded.
    }
  };
}