Combinazione di richieste di annuncio nativo e banner con rendering personalizzato

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

Prerequisiti

  • Versione 11.0.0 o successiva dell'SDK Google Mobile Ads.
  • Completa la sezione Inizia.

Caricamento dell'annuncio

Gli annunci nativi sottoposti a rendering personalizzato vengono caricati utilizzando la classe AdLoader, che ha una propria classe AdLoader.Builder per personalizzarli durante la creazione. Aggiungendo gli ascoltatori al AdLoader durante la sua creazione, un'app specifica i tipi di formati degli annunci che è pronta a ricevere. AdLoader richiede quindi solo quei 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 una singola richiesta:

Java

AdLoader adLoader = new AdLoader.Builder(context, "/6499/example/nativeandbanner")
    .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, "/6499/example/nativeandbanner")
    .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 richiami forAdManagerAdView(), devi specificare un elenco a lunghezza variabile di dimensioni di annunci valide insieme a un OnAdManagerAdViewLoadedListener.

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

Impostazione di AdViewOptions

L'ultima funzione inclusa nella creazione dell'elemento AdLoader di cui 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 agli editori di impostare opzioni specifiche per i banner caricati da AdLoader, ad esempio:

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