Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Esta página contiene instrucciones y muestras de código para mostrar anuncios intersticiales en Android.
Información general
Mostrar anuncios intersticiales requiere un poco más de trabajo que los banners. Además de configurar un InterstitialAdView con el identificador de ubicación, debe implementar la AdListener interfaz, que incluye métodos que indican cuándo un anuncio intersticial ha terminado de cargarse correctamente o cuándo ha fallado la solicitud.
Cuando estés listo para mostrar el anuncio intersticial al usuario, llama a show(). Esto debe ocurrir en un plazo aproximado de 4 minutos después de la llamada para loadAd() que se cuente la impresión.
Para obtener más información, consulte el ejemplo de código siguiente.
Tipos de medios creativos compatibles con el bloque de anuncios intersticiales
Puede InterstitialAdView renderizar creatividades de los siguientes tipos de medios, que se asignan a los tipos de medios por los que Monetize clasifica las creatividades (consulte Crear una ubicación: tipos y subtipos de medios):
| Tipo de medio | Descripción |
|---|---|
Banner (1) |
Banners publicitarios estáticos o animados. |
Intersticial (3) |
Creatividades a pantalla completa, incluyendo MRAID, imagen estática y formatos de respuesta HTML. Para la configuración creativa, consulte: |
Vídeo (4) |
Creatividades de vídeo VAST. Consulte Personalizar las opciones del reproductor de vídeo en Android para personalizar la interfaz de usuario del reproductor de vídeo. |
Importante
Cada tipo de medio debe estar habilitado explícitamente en la configuración de medios permitidos de la ubicación en Monetize para que pueda publicarse. Configura los elementos multimedia permitidos en la interfaz de usuario de monetización o a través de la API para incluir todos los tipos de medios que quieres que reciba el intersticial. Si no se permite ningún tipo de contenido multimedia compatible en el emplazamiento, no se publicarán anuncios. Para obtener más información, consulte Crear un emplazamiento: limitar el tipo y el tamaño de los recursos creativos que pueden publicarse.
Integración básica
Nota:
As best practices:
- Se debe llamar a todos los métodos del SDK en el subproceso principal.
-
activityOnDestroy()debe ser llamado para el Intersticial que se espera que sea destruido.
// Android: Kotlin code to show an interstitial ad
package com.example.simpleinterstitial
import android.app.Activity
import android.os.Bundle
import android.util.Log
import com.appnexus.opensdk.*
class MainActivity : Activity(), AdListener {
private var interstitial: InterstitialAdView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Set up an ad view with our placement ID.
interstitial = InterstitialAdView(this).apply {
placementID = "1326299"
setAdListener(this@MainActivity)
}
// Fetch an ad from the server. If this works, `onAdLoaded` will
// be called, and we can show the ad.
interstitial?.loadAd()
}
override fun onDestroy() {
interstitial?.activityOnDestroy()
super.onDestroy()
}
override fun onAdLoaded(av: AdView) {
Log.d("onAdLoaded", "The ad has loaded, now we can show it...")
(av as? InterstitialAdView)?.show()
}
override fun onAdLoaded(nativeAdResponse: NativeAdResponse) {
// Ignore. This callback is for Native in Banner.
}
override fun onAdRequestFailed(av: AdView, rc: ResultCode) {
Log.d("onAdRequestFailed", "The ad request failed: $rc")
}
override fun onAdClicked(av: AdView) {
Log.d("onAdClicked", "The user clicked your ad.")
}
override fun onAdClicked(adView: AdView, clickUrl: String) {
// Called only if setClickThroughAction(ANClickThroughAction.RETURN_URL) is set.
// Handle the URL appropriately.
}
override fun onAdCollapsed(av: AdView) {
// Do something here.
}
override fun onAdExpanded(av: AdView) {
// Do something here as well.
}
override fun onAdImpression(av: AdView) {
// Do something here as well.
}
}
Configuración avanzada
En las siguientes secciones se describe la configuración opcional y las devoluciones de llamada que puede usar para personalizar la forma en que el anuncio intersticial solicita y muestra las creatividades.
Inicializar con ID de miembro y código de inventario
Como alternativa a un ID de ubicación, puede solicitar un anuncio intersticial utilizando un ID de miembro y un código de inventario llamando al setInventoryCodeAndMemberID(int memberID, String inventoryCode)InterstitialAdView. Si se establecen un código de inventario y un identificador de ubicación, el código de inventario tendrá prioridad.
// Android: Kotlin code to request an interstitial using member ID and inventory code
val interstitial = InterstitialAdView(this)
interstitial.setInventoryCodeAndMemberID(123, "your-inventory-code")
interstitial.setAdListener(this)
interstitial.loadAd()
Usar tamaños intersticiales personalizados
De forma predeterminada, si no especificas un tamaño de anuncio, el SDK capturará anuncios en cualquiera de los tamaños siguientes que sean menores o iguales que el tamaño de la pantalla del dispositivo.
- 1x1 (siempre enviado)
- El tamaño detectado de la pantalla (siempre enviado)
- 300x250
- 320 x 480
- 900x500
- 1024 x 1024
Si quieres mostrar anuncios intersticiales en tamaños distintos a los predeterminados, usa el setAllowedSizes método de la vista de anuncios intersticiales como se muestra a continuación. Tenga en cuenta que el tamaño detectado de la pantalla se seguirá pasando como tamaño principal. Los tamaños establecidos usando setAllowedSizes se pasarán como tamaño adicional en la vista de anuncios intersticiales y reemplazarán los valores predeterminados de 300x250, 320x480, 900x500 y 1024x1024.
// Android: Kotlin code to show interstitial ads in sizes other than the defaults
val interstitial = InterstitialAdView(this)
interstitial.placementID = "1326299"
interstitial.setAllowedSizes(arrayListOf(AdSize(320, 480), AdSize(768, 1024)))
Establecer el retraso del botón de cierre
Para las creatividades de banners e intersticiales , el botón cerrar aparece en el anuncio intersticial diez segundos después de que se muestre de forma predeterminada. Para cambiar el retraso, llame al setCloseButtonDelay(int closeButtonDelay)InterstitialAdView, pasando el retraso en milisegundos. El máximo es 10000 ms (10 segundos); valores superiores a eso se limitan a 10 segundos. Pasar permite que 0 el botón cerrar aparezca inmediatamente. Esta configuración no tiene ningún efecto en las creatividades de vídeo , que utilizan los propios controles de omisión y cierre del vídeo.
// Show the close button after 5 seconds instead of the default 10.
interstitial.setCloseButtonDelay(5000)
Cerrar automáticamente un archivo intersticial
Para cerrar automáticamente un banner o una creatividad intersticial después de un tiempo de espera específico, no llame a show(). En su lugar, llame a showWithAutoDismissDelay(delayinseconds), donde delayinseconds es el número de segundos que se mostrará el anuncio antes de que se cierre. Esta configuración no tiene ningún efecto en las creatividades de vídeo , que se ejecutan hasta que se completan o se omiten.
// Show an interstitial ad, wait for 10 seconds, then auto-close it.
interstitial.showWithAutoDismissDelay(10)
Personalizar las opciones del reproductor de vídeo
Para personalizar la interfaz de usuario del reproductor de vídeo (omitir controles, silenciar, hacer clic en el texto y otros controles de reproducción), consulte Personalizar las opciones del reproductor de vídeo en Android.
Reciba devoluciones de llamada de finalización de vídeo
Registre un VideoEventListener en su InterstitialAdView vía setVideoEventListener(...) para recibir una notificación de cómo terminó un anuncio intersticial de video — VideoCompletionState.COMPLETED, SKIPPED, o ERROR. La devolución de llamada solo se desencadena para anuncios de vídeo intersticiales RTB (no mediados ni RSC) y se ejecuta junto con las devoluciones de llamada cercanas existentes.
// Android: Kotlin code to receive interstitial video completion callbacks
val interstitial = InterstitialAdView(this) // Create the interstitial ad view
interstitial.placementID = "1326299" // Set placement ID
interstitial.setVideoEventListener { adView, state -> // Register the video completion listener
when (state) {
VideoCompletionState.COMPLETED -> {
// The video played to its natural end
}
VideoCompletionState.SKIPPED -> {
// The user skipped the video before it ended
}
VideoCompletionState.ERROR -> {
// Playback ended because of an error or timeout
}
}
}
interstitial.loadAd() // Load the ad