Anuncios en forma de banner

Los anuncios de banner son anuncios rectangulares con imágenes o de texto que ocupan un lugar 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 utiliza la publicidad para celulares, es un buen 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 los fragmentos de código y las instrucciones, también se 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 el editor de Unity, prueba la nueva versión beta de 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 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 - 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 en la que 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 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 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 usted puede solicitar anuncios con él. Se configuró especialmente para mostrar anuncios de prueba en lugar de anuncios de producción para 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 bloques de anuncios para usarlos en tu app, debes configurar tu dispositivo como dispositivo de prueba de forma explícita cuando desarrollas. Esto es sumamente importante. Realizar pruebas con anuncios reales (incluso si nunca los presiona) infringe la política de AdMob y puede provocar la suspensión de su cuenta. Lee Anuncios de prueba para obtener información sobre cómo asegurarte de obtener anuncios de prueba siempre durante el desarrollo.

Cargar un anuncio

Una vez que se crea una 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 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);
    }
...

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 conectarte a varios eventos del ciclo de vida del anuncio: carga, apertura, cierre, etc. A fin de escuchar estos eventos, registra un delegado para el EventHandler adecuado, 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 un anuncio no se carga. 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 análisis para realizar un seguimiento de los clics, este 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 realizar cualquier otra tarea necesaria a fin de prepararse para la interacción.

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 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 se diseñaron para reemplazar a los banners inteligentes.

Limpie los 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 pérdidas de memoria.

Recursos adicionales

Ejemplos

Historias de éxito