Anuncios en forma de banner

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Los anuncios de banner son anuncios rectangulares de imagen o texto que ocupan un lugar en la pantalla. Permanecen en la pantalla mientras los usuarios interactúan con la app y se pueden actualizar de forma automática después de un período determinado. Si la publicidad para celulares es nueva para usted, es un excelente punto de partida. Caso de éxito.

En esta guía, se muestra cómo integrar anuncios de banner de AdMob en una app de Unity. Además de las instrucciones y los 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

Cómo crear un banner

El primer paso para mostrar un banner es crear un objeto BannerView en una secuencia de comandos C# adjunta a una GameObject.

Para facilitar la integración de anuncios con Unity Editor, prueba la nueva versión Beta de las posiciones de anuncios.

using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;
    ...
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize(initStatus => { });

        this.RequestBanner();
    }

    private void RequestBanner()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
    }
}

El constructor de BannerView tiene los siguientes parámetros:

  • adUnitId: Es el ID del bloque de anuncios de AdMob desde el que BannerView debe cargar los anuncios.
  • AdSize: El tamaño del anuncio de AdMob que deseas usar (consulta los tamaños de banner para obtener más información).
  • AdPosition: Es la posición donde se debe colocar el anuncio de banner. La enumeración AdPosition enumera los valores válidos de posición del anuncio.

Es importante tener en cuenta cómo se usan diferentes bloques de anuncios, según la plataforma. Deberás usar un bloque de anuncios de iOS para realizar solicitudes de anuncios en iOS y un bloque de anuncios de Android para realizar solicitudes en Android.

(Opcional) Posición del anuncio personalizado

Para un control mayor sobre dónde se coloca un BannerView en la pantalla que lo que ofrecen los valores AdPosition, usa el constructor BannerView que tiene las coordenadas x e y como parámetros:

// Create a 320x50 banner ad at coordinate (0,50) on screen.
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, 0, 50);

La esquina superior izquierda de BannerView se posicionará en los valores x e y pasados al constructor, donde el origen es la parte superior izquierda de la pantalla.

(Opcional) Tamaños de anuncios personalizados

Además de usar una constante AdSize, también puedes especificar un tamaño personalizado para tu anuncio:

AdSize adSize = new AdSize(250, 250);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);

Probar siempre con anuncios de prueba

El código de muestra anterior contiene un ID de bloque de anuncios y puedes solicitar anuncios con él. Se configuró en especial para mostrar anuncios de prueba en lugar de anuncios de producción para cada solicitud, lo que hace que sea seguro utilizarlo.

Sin embargo, una vez que registres una app en la IU de AdMob y crees tus propios ID de bloque de anuncios para usarlos en tu app, deberás configurar tu dispositivo como un dispositivo de prueba de forma explícita cuando desarrolles. Esto es extremadamente importante. Las pruebas con anuncios reales (incluso si nunca los presiona) son contra la política de AdMob y pueden ocasionar la suspensión de su cuenta. Consulta Anuncios de prueba para obtener información sobre cómo asegurarte de que siempre obtengas anuncios de prueba durante el desarrollo.

Cargar un anuncio

Una vez que se crea una instancia de BannerView, el siguiente paso es cargar un anuncio. Para ello, usa el método loadAd() en la clase BannerView. Toma un argumento AdRequest, que contiene información del tiempo de ejecución (como información de orientación) sobre una sola solicitud de anuncio.

A continuación, le mostramos un ejemplo que muestra cómo cargar un anuncio:

...
    private void RequestBanner()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }
...

Eso es todo. Su aplicación ya está lista para mostrar anuncios de banner de AdMob.

Eventos de anuncios

Para personalizar aún más el comportamiento de tu anuncio, puedes conectarte a una serie de eventos en el ciclo de vida del anuncio: cargar, abrir, cerrar, etcétera. A fin de escuchar estos eventos, registra un delegado para la EventHandler apropiada, como se muestra a continuación.

...
using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;

    public void Start()
    {
        this.RequestBanner();
    }

    private void RequestBanner()
    {

        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Called when an ad request has successfully loaded.
        this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;
        // Called when an ad request failed to load.
        this.bannerView.OnAdFailedToLoad += this.HandleOnAdFailedToLoad;
        // Called when an ad is clicked.
        this.bannerView.OnAdOpening += this.HandleOnAdOpened;
        // Called when the user returned from the app after an ad click.
        this.bannerView.OnAdClosed += this.HandleOnAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }

    public void HandleOnAdLoaded(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLoaded event received");
    }

    public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                            + args.LoadAdError.GetMessage());
    }

    public void HandleOnAdOpened(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdOpened event received");
    }

    public void HandleOnAdClosed(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdClosed event received");
    }
}

El evento OnAdFailedToLoad contiene argumentos de eventos especiales. Pasa una instancia de HandleAdFailedToLoadEventArgs con un Message que describe el error:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
  MonoBehaviour.print("Banner failed to load: " + args.Message);
  // Handle the ad failed to load event.
};
Evento de anuncioDescripción
OnAdLoaded El evento OnAdLoaded se ejecuta cuando un anuncio termina de cargarse.
OnAdFailedToLoad Se invoca el evento OnAdFailedToLoad cuando no se puede cargar un anuncio. El parámetro Message describe el tipo de falla que se produjo.
OnAdOpening Este método se invoca cuando el usuario presiona un anuncio. Si usas un paquete de estadísticas para hacer un seguimiento de los clics, este es un buen lugar para registrar uno.
OnAdClosed Cuando un usuario regresa a la app después de ver la URL de destino de un anuncio, se invoca este método. Tu app puede usarla para reanudar actividades suspendidas o realizar cualquier otra tarea necesaria a fin de prepararse para la interacción.

La siguiente tabla muestra los tamaños de banner estándar.

Tamaño en dp (ancho x alto) Descripción Disponibilidad Constante de AdSize
320 x 50 Banner estándar 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 reemplazan a los banners inteligentes.

Limpieza de anuncios de banner

Cuando termines con un BannerView, asegúrate de llamar al método Destroy() antes de quitar la referencia a él:

bannerView.Destroy();

Esto notifica al complemento que el objeto ya no se usa y la memoria que ocupó se puede reclamar. Si no se llama a este método, se producirán pérdidas de memoria.

Recursos adicionales

Muestras

Historias de éxito