Gli annunci nativi sono asset pubblicitari presentati agli utenti tramite componenti dell'interfaccia utente nativi della piattaforma. Vengono visualizzati 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é l'SDK GMA di nuova generazione, è responsabile della visualizzazione.
In generale, l'implementazione corretta degli annunci nativi si articola in due parti: Caricamento di un annuncio utilizzando l'SDK e visualizzazione dei contenuti dell'annuncio nell'app.
Questa pagina mostra come utilizzare l'SDK per caricare annunci nativi. Suggerimento: scopri di più sugli annunci nativi nel nostro playbook sugli 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
- Completa la Guida introduttiva.
- SDK GMA Next Gen 0.6.0-alpha01 o versioni successive.
Esegui sempre i test con gli 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 |
Caricare un annuncio
Per caricare un annuncio nativo, chiama il metodo NativeAdLoader.load(), 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 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.
L'SDK GMA di nuova generazione potrebbe non restituire il numero esatto di annunci richiesti.
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 dall'SDK GMA di nuova generazione sono unici, anche se gli annunci provenienti da inventario riservato o da acquirenti di terze parti potrebbero non esserlo.
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 prememorizzare nella cache l'elenco degli annunci.
Quando esegui il precaricamento degli annunci, svuota la cache e ricarica la pagina dopo un'ora.
Limita la memorizzazione nella cache degli annunci nativi solo a ciò che è necessario. Ad esempio, durante la prememorizzazione nella cache, memorizza nella cache solo gli annunci immediatamente visibili sullo schermo. Gli annunci nativi occupano molta memoria e la memorizzazione nella cache senza distruggerli 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, l'accelerazione hardware deve essere attivata.
L'accelerazione hardware è abilitata 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 singole attività. Per attivare o disattivare l'accelerazione hardware, utilizza l'attributo android:hardwareAccelerated per gli elementi <application> e <activity> nel file 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 visualizzazioni dei singoli annunci non possono essere attivate per l'accelerazione hardware se l'attività è disattivata, pertanto l'attività stessa deve avere l'accelerazione hardware attivata.
Visualizzare l'annuncio
Una volta caricato un annuncio, non ti resta che mostrarlo agli utenti. Consulta la nostra guida a Native Advanced per scoprire come.
Esempio
Scarica ed esegui l'app di esempio che mostra l'utilizzo dell'SDK GMA di nuova generazione.