Los anuncios de banner son anuncios rectangulares que ocupan una parte del diseño de una aplicación. Permanecen en la pantalla mientras los usuarios interactúan con la app, ya sea fijos en la parte superior o inferior de la pantalla o intercalados con el contenido a medida que el usuario se desplaza. Los anuncios de banner se pueden actualizar automáticamente después de un período determinado. Consulta Descripción general de los anuncios de banner para obtener más información.
En esta guía, se muestra cómo comenzar a usar los anuncios de banner adaptables fijos, que maximizan el rendimiento mediante la optimización del tamaño del anuncio para cada dispositivo con el ancho de anuncio que especifiques.
Los anuncios de banner adaptable fijos son anuncios con relación de aspecto fijas en lugar de los de tamaño fijo. La relación de aspecto es similar al estándar de la industria de 320 x 50. Una vez que especifiques el ancho completo disponible, se mostrará un anuncio con una altura óptima para ese ancho. La altura óptima no cambia en las solicitudes del mismo dispositivo, y las vistas circundantes no necesitan moverse cuando se actualiza el anuncio.
Requisitos previos
- Completa la Guía de introducción.
Realizar pruebas siempre con anuncios de prueba
Cuando compiles y pruebes tus apps, asegúrate de usar anuncios de prueba en lugar de anuncios publicados en producción. De lo contrario, podría suspenderse tu cuenta.
La forma más fácil de cargar anuncios de prueba es usar nuestro ID de unidad de anuncios de prueba exclusivo para los banners de Android:
ca-app-pub-3940256099942544/9214589741
Se configuró especialmente para mostrar anuncios de prueba en cada solicitud, y puedes usarlo en tus propias apps mientras codificas, pruebas y depuras. Asegúrate de reemplazarlo por tu propio ID de unidad de anuncios antes de publicar la app.
Consulta Anuncios de prueba para obtener más información sobre cómo funcionan estos anuncios del SDK de anuncios para dispositivos móviles.
Agrega AdView al diseño
El primer paso para mostrar un banner es colocar AdView
en el diseño de Activity
o Fragment
en el que deseas mostrarlo:
Java
private AdSize getAdSize() {
// Determine the screen width (less decorations) to use for the ad width.
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
display.getMetrics(outMetrics);
float density = outMetrics.density;
float adWidthPixels = adContainerView.getWidth();
// If the ad hasn't been laid out, default to the full screen width.
if (adWidthPixels == 0) {
adWidthPixels = outMetrics.widthPixels;
}
int adWidth = (int) (adWidthPixels / density);
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth);
}
private void loadBanner() {
// Create a new ad view.
AdView adView = new AdView(this);
adView.setAdSizes(getAdSize());
adView.setAdUnitId("ca-app-pub-3940256099942544/9214589741");
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
Kotlin
// Determine the screen width (less decorations) to use for the ad width.
// If the ad hasn't been laid out, default to the full screen width.
private val adSize: AdSize
get() {
val display = windowManager.defaultDisplay
val outMetrics = DisplayMetrics()
display.getMetrics(outMetrics)
val density = outMetrics.density
var adWidthPixels = binding.adViewContainer.width.toFloat()
if (adWidthPixels == 0f) {
adWidthPixels = outMetrics.widthPixels.toFloat()
}
val adWidth = (adWidthPixels / density).toInt()
return AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, adWidth)
}
private fun loadBanner() {
// Create a new ad view.
val adView = AdView(this)
adView.adSizes = adSize
adView.adUnitId = "ca-app-pub-3940256099942544/9214589741"
// Create an ad request.
val adRequest = AdRequest.Builder().build()
// Start loading the ad in the background.
adView.loadAd(adRequest)
}
Carga un anuncio
Una vez que AdView esté implementado, el siguiente paso es cargar un anuncio. Para ello, usa el método loadAd()
en la clase AdView
. Lleva un parámetro AdRequest
, que contiene información del entorno de ejecución, como la información de segmentación, sobre una sola solicitud de anuncio.
A continuación, te mostramos un ejemplo de cómo cargar un anuncio en el método onCreate()
de un Activity
:
Java
private void loadBanner() {
// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT);
adView.setAdSize(getAdSize());
// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
// Start loading the ad in the background.
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
Kotlin
private fun loadBanner() {
// This is an ad unit ID for a test ad. Replace with your own banner ad unit ID.
adView.adUnitId = "/6499/example/banner"
adView.setAdSize(adSize)
// Create an ad request.
val adRequest = AdRequest.Builder().build()
// Start loading the ad in the background.
adView.loadAd(adRequest)
}
Si tu anuncio no se carga, no necesitas solicitar otro explícitamente, siempre y cuando hayas configurado tu unidad de anuncios para que se actualice. El SDK de anuncios de Google para dispositivos móviles respeta cualquier frecuencia de actualización que hayas especificado en la interfaz web AdMob. Si no habilitaste la actualización, deberás emitir una solicitud nueva.
Listo. Tu app ya está lista para mostrar anuncios de banner.
Eventos de anuncios
Puedes detectar una serie de eventos en el ciclo de vida del anuncio, como la carga, la impresión y el clic de los anuncios, así como los eventos de apertura y cierre de anuncios. Se recomienda configurar la devolución de llamada antes de cargar el banner.Java
AdView.setAdListener(new AdListener() {
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
@Override
public void onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
@Override
public void onAdFailedToLoad(LoadAdError adError) {
// Code to be executed when an ad request fails.
}
@Override
public void onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
});
Kotlin
AdView.adListener = object: AdListener() {
override fun onAdClicked() {
// Code to be executed when the user clicks on an ad.
}
override fun onAdClosed() {
// Code to be executed when the user is about to return
// to the app after tapping on an ad.
}
override fun onAdFailedToLoad(adError : LoadAdError) {
// Code to be executed when an ad request fails.
}
override fun onAdImpression() {
// Code to be executed when an impression is recorded
// for an ad.
}
override fun onAdLoaded() {
// Code to be executed when an ad finishes loading.
}
override fun onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
}
}
Cada uno de los métodos reemplazables de AdListener
corresponde a un evento en el ciclo de vida de un anuncio.
Métodos reemplazables | |
---|---|
onAdClicked() |
Se invoca el método onAdClicked() cuando se registra un clic en un anuncio.
|
onAdClosed() |
Cuando un usuario regresa a la app después de ver la URL de destino de un anuncio, se invoca el método onAdClosed() . Tu app puede usarla para reanudar actividades suspendidas o realizar cualquier otra tarea necesaria a fin de prepararse para la interacción.
Consulta el ejemplo de AdListener de AdMob para ver una implementación de los métodos de objeto de escucha de anuncios en la app de demostración de la API de Android.
|
onAdFailedToLoad() |
El método onAdFailedToLoad() es el único que incluye un parámetro. El parámetro de error de tipo LoadAdError describe qué error ocurrió. Para obtener más información, consulta la documentación para depurar errores de carga de anuncios.
|
onAdImpression() |
Se invoca el método onAdImpression() cuando se registra una impresión para un anuncio.
|
onAdLoaded() |
El método onAdLoaded() se ejecuta cuando termina de cargarse un anuncio. Si quieres retrasar la adición de AdView a tu actividad o fragmento hasta estar seguro de que se cargará un anuncio, por ejemplo, puedes hacerlo aquí.
|
onAdOpened() |
Se invoca el método onAdOpened() cuando un anuncio abre una superposición que cubre la pantalla.
|
Aceleración de hardware para anuncios de video
Para que los anuncios de video se muestren correctamente en las vistas de anuncios en forma de banner, debes habilitar la aceleración de hardware.
La aceleración de hardware está habilitada de forma predeterminada, pero algunas apps pueden inhabilitarla. Si esto se aplica a tu app, te recomendamos que habilites la aceleración de hardware para las clases Activity
que usen anuncios.
Cómo habilitar la aceleración de hardware
Si la aceleración de hardware activada globalmente hace que tu app no se comporte correctamente, también puedes controlarla para actividades individuales. Para habilitar o inhabilitar la aceleración de hardware, puedes usar el atributo android:hardwareAccelerated
para los elementos <application>
y <activity>
en tu AndroidManifest.xml
. En el siguiente ejemplo, se habilita la aceleración de hardware para toda la app, pero se inhabilita para una actividad:
<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>
Consulta la Guía de aceleración de hardware para obtener más información sobre las opciones para controlar la aceleración de hardware. Ten en cuenta que las vistas de anuncios individuales no se pueden habilitar para la aceleración de hardware si la actividad está inhabilitada, por lo que la actividad en sí debe tener habilitada esa aceleración.
Recursos adicionales
Ejemplos en GitHub
Próximos pasos
Banners contraíbles
Los anuncios de banner contraíbles se presentan, inicialmente, como una superposición más grande, con un botón para contraer el anuncio a un tamaño más pequeño. Considera usarlo para optimizar aún más el rendimiento. Consulta los anuncios de banner contraíbles para obtener más información.
Banners adaptables intercalados
Los banners adaptables intercalados son banners más grandes y altos en comparación con los banners adaptables fijos. Tienen altura variable y pueden ser tan altas como la pantalla del dispositivo. Los banners adaptables intercalados se recomiendan en lugar de los anuncios de banner adaptable fijos para las apps que colocan anuncios de banner en contenido por el que es posible desplazarse. Consulta los banners adaptables intercalados para obtener más detalles.