Los anuncios de banner son anuncios de imagen o de texto rectangulares que ocupan un lugar dentro del diseño de una aplicación. Permanecen en la pantalla mientras los usuarios interactúan con la aplicación y pueden actualizarse automáticamente después de un cierto período de tiempo. Si eres nuevo en la publicidad móvil, son una excelente opción para comenzar.
Integración
Existen dos formas diferentes de realizar la integración de un banner: usando código o añadiendo la vista de banner en un layout. A continuación se muestran ejemplos de ambas opciones:
Layout XML
<com.wortise.ads.banner.BannerAd
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:adSize="HEIGHT_50"
app:adUnitId="Ad Unit ID de Wortise" />
El widget tiene soporte para los siguientes parámetros:
Parámetro
Tipo
Requerido
Descripción
app:adUnitId
String
Si
El ID del ad unit a asignar al banner
app:adSize
AdSize
No
Tamaño máximo (altura) para el banner. Los posibles valores para este parámetro se encuentran declarados en la clase AdSize
app:autoRefreshTime
Integer
No
Valor en segundos que representa el tiempo que deberá transcurrir para que se realice la carga de un nuevo anuncio banner
Código
publicclassMainActivityextendsActivity {privateBannerAd mBannerAd; @OverridepublicvoidonCreate(Bundle savedInstanceState) {... mBannerAd =newBannerAd(this);mBannerAd.setAdSize(AdSize.HEIGHT_50);mBannerAd.setAdUnitId("Ad Unit ID de Wortise");// Por ejemplo, añadímos el BannerAd en un FrameLayoutFrameLayout frameLayout =findViewById(R.id.frame);frameLayout.addView(mAdView);mBannerAd.loadAd(); } @OverridepublicvoidonDestroy() {...mBannerAd.destroy(); } @OverridepublicvoidonPause() {...mBannerAd.pause(); } @OverridepublicvoidonResume() {...mBannerAd.resume(); }}
classMainActivity : Activity() {privatevar bannerAd: BannerAd? =nulloverridefunonCreate(savedInstanceState: Bundle?) {... bannerAd =BannerAd(this).also { it.adSize = AdSize.HEIGHT_50 it.adUnitId ="<Ad Unit ID de Wortise>"// Por ejemplo, añadímos el BannerAd en un FrameLayoutval frameLayout =findViewById<FrameLayout>(R.id.frame) frameLayout.addView(it) it.loadAd() } }overridefunonDestroy() {... bannerAd?.destroy() }overridefunonPause() {... bannerAd?.pause() }overridefunonResume() {... bannerAd?.resume() }}
La clase BannerAd ofrece los siguientes métodos para configurar la instancia:
Método
Requerido
Descripción
setAdUnitId(String)
Si
Asigna un ad unit al banner
setAdSize(AdSize)
No
Tamaño máximo (altura) para el banner. Los posibles valores para este parámetro se encuentran declarados en la clase AdSize
setAutoRefreshTime(long)
No
Valor en milisegundos que representa el tiempo que deberá transcurrir para que se realice la carga de un nuevo anuncio banner
setAutoRefreshTime(long, TimeUnit)
No
Igual que el método anterior, pero permitiendo especificar la unidad de tiempo del valor indicado
Banners adaptativos
Los banners adaptativos son un nuevo formato de banner que se caracteriza por adaptar el tamaño de los anuncios según el dispositivo y la interfaz de la aplicación, para lograr maximizar el rendimiento.
Actualmente existe soporte para dos tipos de banners adaptativos:
Anclados
Este tipo de banner está diseñado para reemplazar a los banners tradicionales de 320x50 y ser posicionado en la parte superior o inferior de la pantalla.
Para hacer uso de este formato, se debe utilizar un código como el mostrado a continuación para configurar un tamaño adaptativo:
// Es necesario especificar la anchura del bannerAdSize adSize =AdSize.getAnchoredAdaptiveBannerAdSize(context, width);mBannerAd.setAdSize(adSize);// Alternativamente, se puede utilizar este otro método para que el SDK calcule// automáticamente la anchura del banner, ya sea pasándole el propio banner o// el View que va a contener dicho bannerAdSize adSize =AdSize.getAnchoredAdaptiveBannerAdSize(view);
// Es necesario especificar la anchura del bannerval adSize = AdSize.getAnchoredAdaptiveBannerAdSize(context, width)bannerAd.adSize = adSize// Alternativamente, se puede utilizar este otro método para que el SDK calcule// automáticamente la anchura del banner, ya sea pasándole el propio banner o// el View que va a contener dicho bannerval adSize = AdSize.getAnchoredAdaptiveBannerAdSize(view)
Inline
Este otro tipo de banner, en comparación con los anclados, está diseñado para tener una altura variable y ser posicionado dentro de un contenido desplazable.
En este caso, se debe utilizar un código como el siguiente para configurar un tamaño adaptativo apropiado:
int maxHeight =200;// Es necesario especificar la anchura del banner. La altura máxima es un// parámetro opcionalAdSize adSize =AdSize.getInlineAdaptiveBannerAdSize( context, width, maxHeight);mBannerAd.setAdSize(adSize);// Alternativamente, se puede utilizar este otro método para que el SDK calcule// automáticamente la anchura del banner, ya sea pasándole el propio banner o// el View que va a contener dicho bannerAdSize adSize =AdSize.getInlineAdaptiveBannerAdSize(view, maxHeight);
val maxHeight =200// Es necesario especificar la anchura del banner. La altura máxima es un// parámetro opcionalval adSize = AdSize.getInlineAdaptiveBannerAdSize(context, width, maxHeight)bannerAd.adSize = adSize// Alternativamente, se puede utilizar este otro método para que el SDK calcule// automáticamente la anchura del banner, ya sea pasándole el propio banner o// el View que va a contener dicho bannerval adSize = AdSize.getInlineAdaptiveBannerAdSize(view, maxHeight)
Configuración del listener
Se puede añadir un listener a cualquier instancia de BannerAd para recibir los diferentes eventos quesucedan durante su ciclo de vida. Para ello, es necesario implementar la interfaz BannerAd.Listener, como se muestra en el siguiente ejemplo:
mBannerAd.setListener(new BannerAd.Listener() { @OverridepublicvoidonBannerClicked(@NonNullBannerAd ad) {// Invocado cuando el anuncio ha sido clickeado } @OverridepublicvoidonBannerFailedToLoad(@NonNullBannerAd ad, @NonNullAdError error) {// Invocado cuando el anuncio no se ha podido cargar// (por error o falta de inventario) } @OverridepublicvoidonBannerImpression(@NonNullBannerAd ad) {// Invocado cuando el anuncio ha generado una impresión } @OverridepublicvoidonBannerLoaded(@NonNullBannerAd ad) {// Invocado cuando el anuncio ha sido cargado }});
bannerAd.listener =object : BannerAd.Listener() {overridefunonBannerClicked(ad: BannerAd) {// Invocado cuando el anuncio ha sido clickeado }overridefunonBannerFailedToLoad(ad: BannerAd, error: AdError) {// Invocado cuando el anuncio no se ha podido cargar// (por error o falta de inventario) }overridefunonBannerImpression(ad: BannerAd) {// Invocado cuando el anuncio ha generado una impresión }overridefunonBannerLoaded(ad: BannerAd) {// Invocado cuando el anuncio ha sido cargado }}