Anuncios en forma de banner

Los anuncios de banner son anuncios rectangulares que ocupan una parte del diseño de una aplicación. Ellas permanecerá en la pantalla mientras los usuarios interactúan con la aplicación, ya sea anclados en la en la parte superior o inferior de la pantalla, o bien intercalados con el contenido a medida que el usuario se desplaza. Banner los anuncios pueden actualizarse automáticamente después de un período determinado. Consulta la Descripción general de los anuncios de banner. para obtener más información.

En esta guía, se muestra cómo comenzar a utilizar los banners adaptables fijos. anuncios, lo que maximiza el rendimiento mediante la optimización del tamaño del anuncio para cada dispositivo mediante el ancho de anuncio que especifiques.

Los anuncios de banner adaptable fijos son anuncios con relación de aspecto fija, no los anuncios anuncios de tamaño fijo. La relación de aspecto es similar al estándar de la industria de 320 x 50. Una vez especificas el ancho completo disponible, te mostrará un anuncio con una altura para ese ancho. La altura óptima no cambia entre las solicitudes de mismo dispositivo y no es necesario mover las vistas circundantes cuando el anuncio actualizaciones de software.

Requisitos previos

Probar siempre con anuncios de prueba

Cuando compiles y pruebes tus apps, asegúrate de usar anuncios de prueba en lugar de anuncios activos y en producción. De lo contrario, podría suspenderse tu cuenta.

La forma más sencilla de cargar anuncios de prueba es usar nuestro ID exclusivo de unidad de anuncios de prueba para Banners para Android:

ca-app-pub-3940256099942544/9214589741

Se configuró de forma especial para mostrar anuncios de prueba para cada solicitud. utilízalos en tus propias apps mientras programas, pruebas y depuras. Solo asegúrate de reemplázala con tu propio ID de unidad de anuncios antes de publicar tu app.

Para obtener más información sobre cómo funcionan los anuncios de prueba del SDK de anuncios para dispositivos móviles, consulta el artículo Anuncios.

Cómo agregar AdView al diseño

El primer paso para mostrar un banner es colocar AdView. en el diseño de la Activity o Fragment en la que quieres mostrarla ,

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 se implementa AdView, cargar un anuncio. Esto puede hacerse con loadAd(). en la clase AdView. Se necesita un AdRequest parámetro, que contiene información del entorno de ejecución, como la de orientación, sobre un en una única solicitud de anuncio.

A continuación, te mostramos un ejemplo de cómo cargar un anuncio en el método onCreate() de una 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, ya que (siempre y cuando configures tu unidad de anuncios para que se actualice) SDK de anuncios de Google para dispositivos móviles respeta la frecuencia de actualización que hayas especificado en el interfaz web. Si no habilitaste la actualización, deberás enviar una nueva para cada solicitud.

Eso es todo. Tu app ya está lista para mostrar anuncios de banner.

Eventos de anuncios

Puede detectar eventos en el ciclo de vida del anuncio, como la carga, la impresión y el clic en el anuncio, así como los eventos de apertura y cierre de anuncios. Se recomienda para 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 anulables
onAdClicked() La onAdClicked() cuando se registra un clic para un anuncio.
onAdClosed() La onAdClosed() cuando un usuario regresa a la app después de ver la transmisión de un anuncio URL de destino. Tu app puede usarla para reanudar actividades suspendidas realizar cualquier otro trabajo necesario para prepararse para la interacción. Consulta la página de referencia de AdMob Ejemplo de AdListener para una implementación de los métodos de objetos de escucha de anuncios en la App de demostración de Android API.
onAdFailedToLoad() La 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 el artículo Cómo depurar errores en la carga de anuncios documentación.
onAdImpression() La onAdImpression() cuando se registra una impresión de un anuncio.
onAdLoaded() La onAdLoaded() se ejecuta cuando termina de cargarse un anuncio. Si quieres retrasar agregando la AdView a tu actividad o fragmento hasta que te asegures de que se cargará un anuncio, por ejemplo, puedes hacerlo aquí.
onAdOpened() La 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 aparezcan correctamente en las vistas de anuncios de banner, el hardware aceleración debe habilitarse.

La aceleración de hardware está habilitada de forma predeterminada, pero algunas apps pueden optar por inhabilitarla que la modifica. Si esto se aplica a tu app, te recomendamos que habilites la aceleración de hardware para Activity clases que usan anuncios.

Cómo habilitar la aceleración de hardware

Si la aceleración de hardware no se comporta correctamente tu app globalmente, también puedes controlarlo para actividades individuales. Para habilitar o inhabilitar la aceleración de hardware, puedes usar android:hardwareAccelerated para el <application> y <activity> elementos en tu AndroidManifest.xml. El siguiente ejemplo habilita el hardware aceleración para toda la app, pero la 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 el artículo Aceleración de hardware. guía 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 pueden habilitarse para la aceleración de hardware si la actividad está inhabilitada, por lo que la actividad en sí debe tener habilitada la aceleración de hardware.

Recursos adicionales

Ejemplos en GitHub

  • Ejemplo de anuncios de banner adaptable fijos: Java | Kotlin
  • Demostración de las funciones avanzadas: Java | Kotlin

Pasos siguientes

Banners contraíbles

Los anuncios de banner contraíbles son anuncios de banner que inicialmente se presentan como un anuncio superpuesto, con un botón para contraer el anuncio a un tamaño más pequeño. Considera usarla para optimizar aún más el rendimiento. Consulta el artículo sobre anuncios de banner contraíbles para obtener más información.

Banners adaptables intercalados

Los banners adaptables intercalados son banners más grandes y más altos en comparación con los banners adaptables fijos. banners. Son de altura variable y pueden ser tan altas como la pantalla del dispositivo. Se recomienda el uso de banners adaptables intercalados en lugar de anuncios de banner adaptable fijos Apps que colocan anuncios de banner en contenido por el que es posible desplazarse. Consulta el ajuste adaptable intercalado banners para obtener más información más detalles.

Explora otros temas