Łączenie żądań reklam natywnych i banerów reklamowych

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

Wymagania wstępne

  • Pakiet 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 do AdLoader podczas tworzenia tej jednostki odbiorniki, aplikacja określa, jakie typy formatów reklam jest gotowa odbierać. AdLoader wysyła żądanie tylko tych typów.

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

Poniższy kod pokazuje, jak utworzyć AdLoader, który może wczytywać reklamy natywne lub banerowe w ramach jednego żądania:

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 wyświetlania banerów reklamowych. Podczas wywoływania funkcji forAdManagerAdView() należy podać listę o zmiennej długości zawierającą prawidłowe rozmiary reklam oraz parametr OnAdManagerAdViewLoadedListener.

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

Ustawianie obiektu AdViewOptions

Ostatnią funkcją uwzględnianą podczas tworzenia 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()
Umożliwia 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, wywołując funkcję AdManagerAdView.recordManualImpression().