Łączenie żądań reklamy natywnej renderowanej niestandardowo i banerów reklamowych

Dzięki kilku zmianom w kodzie możesz łączyć reklamy natywne i banery reklamowe w żądaniach reklam.

Wymagania wstępne

  • Pakiet SDK do reklam mobilnych Google w wersji 11.0.0 lub nowszej.
  • Wykonaj instrukcje w sekcji Pierwsze kroki.

Wczytywanie reklamy

Reklamy natywne renderowane niestandardowo są wczytywane za pomocą klasy AdLoader, która ma własną klasę AdLoader.Builder, aby umożliwić jej dostosowywanie podczas tworzenia. Dodając do AdLoader odbiorców podczas tworzenia, aplikacja określa, jakie formaty reklam jest gotowa odbierać. Następnie AdLoader wysyła żądania tylko tych typów.

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

Ten kod pokazuje, jak utworzyć AdLoader, który może wczytywać reklamę natywną lub baner 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, and so on.
      }
    })
    .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, and so on.
      }
    })
    .withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build()

Metoda forAdManagerAdView() powoduje przygotowanie AdLoader do wyświetlania reklam banerowych. Podczas wywoływania forAdManagerAdView() należy podać listę prawidłowej długości z wartościami OnAdManagerAdViewLoadedListener.

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

Ustawianie opcji AdViewOptions

Ostatnią funkcją uwzględnioną w przykładzie AdLoader jest inna 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 konfigurowanie konkretnych 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 ręcznych wyświetleń mogą samodzielnie określać, kiedy należy je rejestrować, i robić to za pomocą wywołania funkcji AdManagerAdView.recordManualImpression().