Anuncios de banner

Los anuncios de banner ocupan un espacio dentro del diseño de la app, ya sea en la parte superior o inferior de la pantalla del dispositivo. Permanecen en la pantalla mientras los usuarios interactúan con la app y se pueden actualizar automáticamente después de un período determinado. Si es la primera vez que utiliza la publicidad para móviles, es un excelente punto de partida. Caso de éxito.

En esta guía, se muestra cómo integrar anuncios de banner deAdMob en una app para Android. Además de instrucciones y fragmentos de código, también se incluye información sobre el tamaño adecuado de los banners y vínculos a recursos adicionales.

Requisitos previos

Agregar 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 quieres mostrarlo. La manera más fácil de hacerlo es agregar una al archivo de diseño XML correspondiente. A continuación, te mostramos un ejemplo en el que se muestra el AdView de una actividad:

# main_activity.xml
...
  <com.google.android.gms.ads.AdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
  </com.google.android.gms.ads.AdView>
...

Ten en cuenta los siguientes atributos obligatorios:

  • ads:adSize: establezca esta opción en el tamaño de anuncio que desea utilizar. Si no quieres usar el tamaño estándar definido por la constante, puedes configurar un tamaño personalizado. Consulte la sección de tamaño de banner a continuación para obtener más detalles.
  • ads:adUnitId: Configura este parámetro en el identificador único asignado al bloque de anuncios de tu app, en el que se mostrarán los anuncios. Si muestras anuncios de banner en diferentes actividades, cada uno requerirá un bloque de anuncios.

Como alternativa, puedes crear AdView de manera programática:

Java

AdView adView = new AdView(this);

adView.setAdSize(AdSize.BANNER);

adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.

Kotlin

val adView = AdView(this)

adView.adSize = AdSize.BANNER

adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.

Probar siempre con anuncios de prueba

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

La forma más fácil de cargar anuncios de prueba es usar nuestro ID de bloque de anuncios de prueba exclusivo para banners de Android:

ca-app-pub-3940256099942544/6300978111

Se configuró especialmente para mostrar anuncios de prueba en cada solicitud y puedes usarlo en tus propias aplicaciones mientras codificas, pruebas y depuras. Solo asegúrate de reemplazarlo con tu propio ID de bloque 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 móviles, consulta Anuncios de prueba.

Cargar un anuncio

Una vez que se implementa AdView , el siguiente paso es cargar un anuncio. Eso se hace con el método loadAd() en la clase AdView. Toma un parámetro AdRequest, que contiene información del entorno de ejecución (como la información de orientación) sobre una solicitud de anuncio.

A continuación, se muestra un ejemplo que muestra cómo cargar un anuncio en el método onCreate() de un Activity:

MainActivity (extracto)

Java

package ...

import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });

        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }
}

Kotlin

package ...

import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView

class MainActivity : AppCompatActivity() {

    lateinit var mAdView : AdView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        MobileAds.initialize(this) {}

        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
    }
}

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

Eventos de anuncios

Para personalizar aún más el comportamiento de tu anuncio, puedes conectarte a varios eventos del ciclo de vida del anuncio: carga, apertura, cierre, etc. Puedes escuchar estos eventos mediante la clase AdListener.

Para usar un AdListener con AdView, llama al método setAdListener():

Java

mAdView.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

mAdView.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 anulables de AdListener corresponde a un evento en el ciclo de vida de un anuncio.

Métodos anulables
onAdClicked() El método onAdClicked() se invoca cuando se registra un clic para un anuncio.
onAdClosed() El método onAdClosed() se invoca cuando un usuario regresa a la app después de ver la URL de destino de un anuncio. 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 del objeto de escucha de anuncios en la app Android API Demo.
onAdFailedToLoad() El método onAdFailedToLoad() es el único que incluye un parámetro. El parámetro de error de tipo LoadAdError describe qué error se produjo. Para obtener más información, consulte la documentación sobre la depuración de errores en la carga de anuncios.
onAdImpression() El método onAdImpression() se invoca cuando se registra una impresión para un anuncio.
onAdLoaded() El método onAdLoaded() se ejecuta cuando un anuncio termina de cargarse. Si deseas retrasar la adición de AdView a tu actividad o fragmento hasta que estés seguro de que, por ejemplo, se cargará un anuncio, puedes hacerlo aquí.
onAdOpened() El método onAdOpened() se invoca cuando un anuncio abre una superposición que cubre la pantalla.

En la siguiente tabla, se indican los tamaños de banner estándar.

Tamaño en dp (ancho x alto) Descripción Disponibilidad Constante de AdSize
320 x 50 Banner Teléfonos y tablets BANNER
320 x 100 Banner grande Teléfonos y tablets LARGE_BANNER
300 x 250 Rectángulo mediano de IAB Teléfonos y tablets MEDIUM_RECTANGLE
468 x 60 Banner de tamaño completo de IAB Tablets FULL_BANNER
728 x 90 Tabla de clasificación de IAB Tablets LEADERBOARD
Ancho proporcionado x Altura adaptable Banner adaptable Teléfonos y tablets N/A
Ancho de pantalla x 32|50|90 Banner inteligente Teléfonos y tablets SMART_BANNER
Obtenga más información sobre los banners adaptables, que se diseñaron para reemplazar a los banners inteligentes.

Para definir un tamaño de banner personalizado, configura el AdSize que desees, como se muestra a continuación:

Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

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 de actividad que usan anuncios.

Habilita la aceleración de hardware

Si tu app no se comporta correctamente con la aceleración de hardware activada de manera global, también puedes controlarla para actividades individuales. A fin de 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 a fin de 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 esta está inhabilitada. Por lo tanto, la actividad debe tener habilitada la aceleración de hardware.

Recursos adicionales

Ejemplos en GitHub

  • Ejemplo de anuncios de banner: Java | Kotlin

  • Demostración de funciones avanzadas: Java | Kotlin

  • App de ejemplo de banner de RecyclerView: Java

Video instructivo sobre Mobile Ads Garage

Historias de éxito