Combinazione di richieste di annuncio nativo e banner con rendering personalizzato

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

Prerequisiti

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

Caricamento dell'annuncio

Gli annunci nativi con rendering personalizzato vengono caricati utilizzando la classe AdLoader, che ha la propria classe AdLoader.Builder per personalizzarla durante la creazione. Aggiungendo ascoltatori al AdLoader durante la compilazione, un'app specifica quali tipi di formati degli annunci è pronta a ricevere. AdLoader richiede quindi solo questi tipi.

L'oggetto AdLoader può essere configurato anche 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 che può caricare un annuncio nativo o banner in una singola 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, 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()

Il metodo forAdManagerAdView() riportato sopra prepara il AdLoader a ricevere annunci banner. Quando viene invocato forAdManagerAdView(), deve essere specificato un elenco di dimensioni degli annunci valide di lunghezza variabile insieme a un OnAdManagerAdViewLoadedListener.

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

Impostazione di AdViewOptions

L'ultima funzione inclusa nella creazione del AdLoader riportato sopra è 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()
Attiva la generazione manuale di report sulle impressioni per le prenotazioni di Google Ad Manager. Le app che utilizzano le impressioni manuali possono determinare autonomamente quando deve essere registrata un'impressione e possono farlo chiamando AdManagerAdView.recordManualImpression().