Anuncios en forma de banner

Los anuncios de banner son anuncios rectangulares de texto o con imágenes que ocupan un espacio en la pantalla. 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 usas la publicidad para dispositivos móviles, esta es una excelente manera de comenzar. 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 los fragmentos de código y las instrucciones, también incluye información sobre el tamaño adecuado de los banners y vínculos a recursos adicionales.

Prerequisites

Completa Comenzar. Tu app de Unity ya debe tener importado el complemento de Unity de anuncios de Google para dispositivos móviles.

Cómo crear un BannerView

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

Para facilitar la integración de anuncios con Unity Editor, prueba la nueva versión beta de las colocaciones 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 un 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: Es el tamaño del anuncio de AdMob que deseas usar (consulta los tamaños de banner para obtener más detalles).
  • AdPosition: Es la posición en la que se debe colocar el anuncio de banner. La enumeración AdPosition enumera los valores de posición válidos para el anuncio.

Es importante tener en cuenta cómo se usan los 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 personalizada

Para obtener un mayor control sobre la ubicación en la pantalla de un elemento BannerView que se ofrece mediante los valores de 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ó especialmente para mostrar anuncios de prueba en lugar de anuncios de producción en cada solicitud, por lo que es seguro usarlo.

Sin embargo, una vez que registras una app en la IU de AdMob y creas tus propios ID de bloque de anuncios para usarlos en la app, deberás configurar tu dispositivo como dispositivo de prueba de forma explícita cuando desarrolles. Esto es sumamente importante. Las pruebas con anuncios reales (incluso si nunca los presiona) infringen 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 obtener siempre los anuncios de prueba durante el desarrollo.

Carga un anuncio

Una vez que se creó la instancia de BannerView, el siguiente paso es cargar un anuncio. Eso se hace con el método loadAd() en la clase BannerView. Toma un argumento 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, 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);
    }
...

Listo. 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 incluir varios eventos en el ciclo de vida del anuncio: cargar, abrir, cerrar, etcétera. A fin de escuchar estos eventos, registra un delegado para el EventHandler apropiado, 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;
        // Called when the ad click caused the user to leave the application.
        this.bannerView.OnAdLeavingApplication += this.HandleOnAdLeavingApplication;

        // 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.Message);
    }

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

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

    public void HandleOnAdLeavingApplication(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLeavingApplication 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 se termina de cargar un anuncio.
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, es un buen lugar para registrar uno.
OnAdClosed Cuando un usuario vuelve 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 cualquier otro trabajo necesario a fin de prepararse para la interacción.
OnAdLeavingApplication Este método se invoca después de onAdOpened, cuando un usuario hace clic para abrir otra app (como Google Play Store) en segundo plano, la app actual.

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

Tamaño en dp (ancho x) Descripción Disponibilidad Constante de AdSize
320 x 50 Anuncios de 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 deben reemplazar a los banners inteligentes.

Limpiar anuncios de banner

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

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 fugas de memoria.

Recursos adicionales

Ejemplos

Historias de éxito