Łączenie żądań reklamy natywnej z żądaniami banera reklamowego

Wystarczy kilka zmian w kodzie, aby połączyć reklamy natywne i banery reklamowe w żądaniach reklamy.

Wymagania wstępne

  • SDK do reklam mobilnych Google w wersji 11.0.0 lub nowszej.

Wczytywanie reklamy

Reklamy natywne renderowane niestandardowo są wczytywane za pomocą klasy AdLoader, która ma własną klasę AdLoader.Builder umożliwiającą dostosowanie jej podczas tworzenia. Dodając detektory do AdLoader podczas jego tworzenia, aplikacja określa, jakie typy formatów reklam jest gotowa odbierać. Następnie AdLoader żąda tylko tych typów.

Obiekt AdLoader można też skonfigurować tak, aby wysyłał żądania reklamy, które mogą skutkować wyświetleniem banera reklamowego lub reklamy natywnej. Dodanie OnAdManagerAdViewLoadedListener do AdLoader podczas jego tworzenia określa, że banery reklamowe powinny konkurować z reklamami natywnymi o wypełnienie żądania.

Poniższy kod pokazuje, jak utworzyć AdLoader, który może wczytać reklamę natywną lub baner reklamowy w jednym żądaniu:

Java

AdLoader adLoader = new AdLoader.Builder(context, "/21775744923/example/native-and-banner")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
      @Override
      public void onNativeAdLoaded(NativeAd nativeAd) {
        // Show the ad.
      }
    })
    .forAdManagerAdView(new OnAdManagerAdViewLoadedListener() {
      @Override
      public void onAdManagerAdViewLoaded(AdManagerAdView adView) {
        // Show the banner ad.
      }
    }, AdSize.BANNER, AdSize.MEDIUM_RECTANGLE)
    .withAdListener(new AdListener() {
      @Override
      public void onAdFailedToLoad(LoadAdError error) {
        // Handle the failure by logging, altering the UI, etc.
      }
    })
    .withAdManagerAdViewOptions(new AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "/21775744923/example/native-and-banner")
    .forNativeAd { nativeAd ->
      // Show the ad.
    }
    .forAdManagerAdView({ adView ->
      // Show the banner ad.
    }, AdSize.BANNER, AdSize.MEDIUM_RECTANGLE)
    .withAdListener(object: AdListener() {
      override fun onAdFailedToLoad(adError: LoadAdError) {
        // Handle the failure by logging, altering the UI, etc.
      }
    })
    .withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build()

Metoda forAdManagerAdView() przygotowuje AdLoader do odbierania banerów reklamowych. Podczas wywoływania forAdManagerAdView() należy podać listę prawidłowych rozmiarów reklam o zmiennej długości wraz z OnAdManagerAdViewLoadedListener.

Aby wysłać prawidłowe żądanie reklamy, musisz określić co najmniej 1 prawidłowy rozmiar reklamy. Gdy baner reklamowy zostanie wczytany, wywoływana jest metoda onAdManagerAdViewLoaded() określonego obiektu detektora.

Ustawianie obiektu AdViewOptions

Ostatnią funkcją uwzględnioną w tworzeniu AdLoader jest kolejna opcjonalna metoda withAdManagerAdViewOptions():

Java

.withAdManagerAdViewOptions(new AdManagerAdViewOptions.Builder()
    // Methods in the AdManagerAdViewOptions.Builder class can be
    // used here to specify individual banner options settings.
    .build()

Kotlin

.withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder()
    // Methods in the AdManagerAdViewOptions.Builder class can be
    // used here to specify individual banner options settings.
    .build()

Obiekt AdManagerAdViewOptions umożliwia wydawcom ustawianie określonych opcji banerów wczytywanych przez AdLoader, takich jak:

setManualImpressionsEnabled()
Włącza ręczne raportowanie wyświetleń w przypadku rezerwacji w usłudze Google Ad Manager. Aplikacje korzystające z wyświetleń ręcznych mogą samodzielnie określać, kiedy należy zarejestrować wyświetlenie, i mogą to zrobić, wywołując metodę AdManagerAdView.recordManualImpression().