Combinare le richieste di annunci nativi e banner

Con alcune modifiche al codice, puoi combinare annunci nativi e banner nelle tue richieste di annunci.

Prerequisiti

  • Versione 11.0.0 o successive dell'SDK Google Mobile Ads.

Caricare un annuncio

Gli annunci nativi con rendering personalizzato vengono caricati utilizzando la classe AdLoader, che ha una propria classe AdLoader.Builder per personalizzarli durante la creazione. Aggiungendo listener a AdLoader durante la creazione, un'app specifica i tipi di formati degli annunci che è pronta a ricevere. AdLoader richiede solo questi tipi.

L'oggetto AdLoader può anche essere configurato per effettuare richieste di annunci che possono generare un annuncio banner o un annuncio nativo. L'aggiunta di un OnAdManagerAdViewLoadedListener a AdLoader durante la creazione specifica che gli annunci banner devono competere con gli annunci nativi per soddisfare la richiesta.

Il seguente codice mostra come creare un AdLoader in grado di caricare un annuncio nativo o banner in un'unica richiesta:

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()

Il metodo forAdManagerAdView() prepara AdLoader a ricevere annunci banner. Un elenco a lunghezza variabile di dimensioni degli annunci valide deve essere specificato insieme a un OnAdManagerAdViewLoadedListener quando viene richiamato forAdManagerAdView().

Per effettuare una richiesta di annuncio valida, è necessario specificare almeno una dimensione dell'annuncio valida. Quando un annuncio banner è stato caricato correttamente, viene chiamato il metodo onAdManagerAdViewLoaded() dell'oggetto listener specificato.

Imposta l'oggetto AdViewOptions

L'ultima funzione inclusa nella creazione di AdLoader è un altro metodo facoltativo, 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()

L'oggetto AdManagerAdViewOptions consente ai publisher di impostare opzioni specifiche per i banner caricati da AdLoader, ad esempio:

setManualImpressionsEnabled()
Consente la generazione manuale di report sulle impressioni per le prenotazioni di Google Ad Manager. Le app che utilizzano impressioni manuali possono determinare autonomamente quando deve essere registrata un'impressione e possono farlo chiamando AdManagerAdView.recordManualImpression().