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 alla grafica della tua app.
Quando viene caricato un annuncio nativo, la tua app riceve un oggetto annuncio che contiene le relative risorse e l'app, anziché l'SDK Google Mobile Ads (beta), è quindi responsabile della loro 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.
Prerequisiti
- Completa la Guida introduttiva.
- SDK Google Mobile Ads (beta) 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 annunci | ID unità pubblicitaria di esempio |
---|---|
Nativo | /21775744923/example/native |
Video nativo | /21775744923/example/native-video |
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 = "/21775744923/example/native"
}
}
Impostare 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 Google Mobile Ads (beta) 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 dall'SDK Google Mobile Ads (beta) sono unici, anche se gli annunci dell'inventario riservato o degli 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 Google Mobile Ads (beta).