Caricare un annuncio nativo

Gli annunci nativi sono asset pubblicitari presentati agli utenti tramite componenti dell'interfaccia utente nativi della piattaforma. Vengono mostrati utilizzando gli stessi tipi di visualizzazioni con cui crei già i layout e possono essere formattati in modo da corrispondere al design visivo della tua app.

Quando viene caricato un annuncio nativo, la tua app riceve un oggetto annuncio che contiene i relativi asset, e l'app, anziché GMA Next-Gen SDK—è quindi responsabile della loro visualizzazione.

In generale, l'implementazione corretta degli annunci nativi prevede due passaggi: caricare un annuncio utilizzando l'SDK e poi visualizzare i contenuti dell'annuncio nella tua app.

Questa pagina mostra come utilizzare l'SDK per caricare gli annunci nativi. Suggerimento: scopri di più sugli annunci nativi nel nostro Playbook per gli annunci nativi.

Sono disponibili esempi per Java e Kotlin.

Puoi anche consultare alcune storie di successo dei clienti: case study 1, case study 2.

Prerequisiti

Esegui sempre test con annunci di prova

Quando crei e testi le tue app, assicurati di utilizzare annunci di prova anziché annunci di produzione live. In caso contrario, il tuo account potrebbe essere sospeso.

Il modo più semplice per caricare gli annunci di prova è utilizzare il nostro ID unità pubblicitaria di prova dedicato per gli annunci nativi:

Formato dell'annuncio ID unità pubblicitaria di esempio
Nativo ca-app-pub-3940256099942544/2247696110
Video nativo ca-app-pub-3940256099942544/1044960115

Carica un annuncio

Per caricare un annuncio nativo, chiama il NativeAdLoader.load() metodo, che accetta un NativeAdRequest e un NativeAdLoaderCallback.

import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoader
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoaderCallback
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdRequest

class NativeFragment : Fragment() {

  private var nativeAd: NativeAd? = null

  override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    loadAd()
  }

  private fun loadAd() {
    // Build an ad request with native ad options to customize the ad.
    val adRequest = NativeAdRequest
      .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
      .build()

    val adCallback =
      object : NativeAdLoaderCallback {
        override fun onNativeAdLoaded(nativeAd: NativeAd) {
          // Called when a native ad has loaded.
        }
        override fun onAdFailedToLoad(adError: LoadAdError) {
          // Called when a native ad has failed to load.
        }
      }

    // Load the native ad with our request and callback.
    NativeAdLoader.load(adRequest, adCallback)
  }

  companion object {
    // Sample native ad unit ID.
    const val AD_UNIT_ID = "ca-app-pub-3940256099942544/2247696110"
  }
}

Imposta il callback dell'evento dell'annuncio nativo

Quando gestisci onNativeAdLoaded, imposta il NativeAd ricevuto con un NativeAdEventCallback per definire le funzioni per la ricezione degli eventi del ciclo di vita degli annunci nativi:

  nativeAd.adEventCallback =
    object : NativeAdEventCallback {
      override fun onAdShowedFullScreenContent() {
        // Native ad showed full screen content.
      }
      override fun onAdDismissedFullScreenContent() {
        // Native ad dismissed full screen content.
      }
      override fun onAdFailedToShowFullScreenContent {
        // Native ad failed to show full screen content.
      }
      override fun onAdImpression() {
        // Native ad recorded an impression.
      }
      override fun onAdClicked() {
        // Native ad recorded a click.
      }
    }

(Facoltativo) Carica più annunci

Per caricare più annunci, chiama load() con il parametro facoltativo numberOfAds. Il valore massimo che puoi impostare è 5, che rappresenta il numero di annunci. Il GMA Next-Gen SDK potrebbe non restituire il numero esatto di annunci che hai richiesto.

private fun loadAd() {
  // Build an ad request with native ad options to customize the ad.
  val adRequest = NativeAdRequest
    .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
    .build()

  val adCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Called when a native ad has loaded.
      }
      override fun onAdFailedToLoad(adError: LoadAdError) {
        // Called when a native ad has failed to load.
      }
      override fun onAdLoadingCompleted() {
        // Called when all native ads have loaded.
      }
    }

  // Load the native ad with our request and callback.
  NativeAdLoader.load(adRequest, 3, adCallback)
}

Gli annunci restituiti da GMA Next-Gen SDK sono univoci, anche se gli annunci provenienti da inventario prenotato o da acquirenti di terze parti potrebbero non essere univoci.

Se utilizzi la mediazione, non chiamare il metodo load(). Le richieste di più annunci nativi non funzionano per gli ID unità pubblicitarie configurati per la mediazione.

Best practice

Segui queste regole quando carichi gli annunci.

  • Le app che utilizzano annunci nativi in un elenco devono memorizzare nella cache l'elenco degli annunci.

  • Quando memorizzi gli annunci nella cache, svuota la cache e ricarica dopo un'ora.

  • Limita la memorizzazione nella cache degli annunci nativi solo a ciò che è necessario. Ad esempio, quando esegui la memorizzazione nella cache, memorizza nella cache solo gli annunci immediatamente visibili sullo schermo. Gli annunci nativi hanno un footprint della memoria elevato e la memorizzazione nella cache degli annunci nativi senza eliminarli comporta un utilizzo eccessivo della memoria.

  • Elimina gli annunci nativi quando non sono più in uso.

Accelerazione hardware per gli annunci video

Affinché gli annunci video vengano visualizzati correttamente nelle visualizzazioni degli annunci nativi, è necessario attivare l'accelerazione hardware.

L'accelerazione hardware è attivata per impostazione predefinita, ma alcune app potrebbero scegliere di disattivarla. Se questo vale per la tua app, ti consigliamo di attivare l'accelerazione hardware per le classi Activity che utilizzano gli annunci.

Attivare l'accelerazione hardware

Se la tua app non si comporta correttamente con l'accelerazione hardware attivata a livello globale, puoi controllarla anche per le singole attività. Per attivare o disattivare l'accelerazione hardware, utilizza l'attributo android:hardwareAcceleratedper gli <application> e <activity> elementi in AndroidManifest.xml. L'esempio seguente attiva l'accelerazione hardware per l'intera app, ma la disattiva per un'attività:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

Per ulteriori informazioni sulle opzioni per il controllo dell'accelerazione hardware, consulta la guida all'accelerazione hardware. Tieni presente che le singole visualizzazioni degli annunci non possono essere attivate per l'accelerazione hardware se l'Activity è disattivata, quindi l'Activity stessa deve avere l'accelerazione hardware attivata.

Visualizza l'annuncio

Una volta caricato un annuncio, non ti resta che mostrarlo agli utenti. Consulta la nostra Guida avanzata per gli annunci nativi per scoprire come fare.

Esempio

Scarica ed esegui l' app di esempio che illustra l'utilizzo del GMA Next-Gen SDK.