Los anuncios de banner son anuncios rectangulares de imagen o de texto que ocupan un punto determinado en la pantalla. Permanecen en ella mientras los usuarios interactúan con la aplicación y pueden actualizarse automáticamente después de un periodo de tiempo determinado. Si es la primera vez que utilizas la publicidad para móviles, estos anuncios son un excelente punto de partida. Caso de éxito
En esta guía descubrirás cómo integrar anuncios de banner de AdMob en aplicaciones Unity. Además de fragmentos de código e instrucciones, encontrarás información sobre cómo definir el tamaño adecuado para los banners y enlaces a otros recursos.
Requisitos
Completa la guía Primeros pasos. Tu aplicación Unity ya debería tener importado el complemento de Unity de anuncios de Google para móviles.
Crear un objeto BannerView
El primer paso para mostrar un banner es crear un objeto BannerView
en una secuencia de comandos de C# adjunta a un elemento GameObject
.
Para integrar anuncios con el editor de Unity de forma sencilla, prueba la nueva versión beta de los emplazamientos publicitarios.
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 objetos BannerView
tiene los siguientes parámetros:
adUnitId
: el ID del bloque de anuncios de AdMob desde el que el objetoBannerView
debe cargar los anuncios.AdSize
: el tamaño de anuncio de AdMob que quieres usar (consulta la sección Tamaños de banner para obtener más información).AdPosition
: la posición en la que se debe colocar el anuncio de banner. La enumeraciónAdPosition
indica los valores de posición válidos para los anuncios.
Es importante tener en cuenta cómo hay que utilizar los diferentes bloques de anuncios en función de la plataforma en la que se muestran. Debes utilizar un bloque de anuncios de iOS para hacer solicitudes de anuncios en iOS y un bloque de anuncios de Android para hacerlas en Android.
(Opcional) Posicionamiento personalizado de los anuncios personalizado
Para tener más control del que ofrecen los valores AdPosition
a la hora de especificar dónde se sitúa un elemento BannerView
en la pantalla, utiliza el constructor BannerView
, que usa 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 del elemento BannerView
se situará en los valores x e y enviados al constructor. El origen será la esquina 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 de anuncio personalizado:
AdSize adSize = new AdSize(250, 250);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);
Comprueba siempre las aplicaciones con anuncios de prueba
El código de ejemplo de arriba contiene un ID de bloque de anuncios que puedes usar libremente para solicitar publicidad. Está especialmente configurado para devolver anuncios de prueba en vez de anuncios de producción, por lo que es seguro utilizarlo.
Sin embargo, después de registrar una aplicación en la interfaz de AdMob y crear tus propios ID de bloque de anuncios para usarlos en dicha aplicación, tendrás que configurar tu dispositivo como un dispositivo de prueba durante la fase de desarrollo. Esto es extremadamente importante, ya que las pruebas con anuncios reales (aunque nunca los toques) infringen la política de AdMob y pueden provocar la suspensión de tu cuenta. Consulta la guía Anuncios de prueba para descubrir cómo asegurarte de contar siempre con anuncios de prueba durante la fase de desarrollo.
Cargar anuncios
Después de instanciar BannerView
, lo siguiente que debes hacer es cargar un anuncio. Para ello, se utiliza el método loadAd()
en la clase BannerView
. Recibe un argumento AdRequest
, que contiene información sobre el tiempo en ejecución de una solicitud de anuncio aislada (por ejemplo, información sobre la segmentación).
En el siguiente ejemplo se 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. Tu aplicación ya está lista para mostrar anuncios de banner de AdMob.
Eventos de anuncios
Para personalizar aún más el comportamiento de tus anuncios, puedes añadir varios eventos a su ciclo de vida: carga, apertura, cierre, etc. Para escuchar estos eventos, registra un delegado correspondiente al EventHandler
adecuado, tal como se muestra en este ejemplo.
... 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 evento especiales. Concretamente, transmite una instancia de HandleAdFailedToLoadEventArgs
con 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 anuncio | Descripción |
---|---|
OnAdLoaded |
El evento OnAdLoaded se ejecuta cuando un anuncio ha terminado de cargarse. |
OnAdFailedToLoad |
El evento OnAdFailedToLoad se invoca cuando un anuncio no se puede cargar. El parámetro Message describe el tipo de error que se ha producido. |
OnAdOpening |
Este método se invoca cuando el usuario toca un anuncio. Si utilizas un paquete de analíticas para hacer un seguimiento de los clics, es un buen lugar para registrar uno. |
OnAdClosed |
Cuando un usuario regresa a la aplicación después de ver la URL de destino de un anuncio, se invoca este método. La aplicación puede utilizarlo para reanudar las actividades suspendidas o hacer cualquier otra tarea necesaria para prepararse de cara a la interacción. |
OnAdLeavingApplication |
Este método se invoca después de onAdOpened , cuando un usuario hace clic y abre otra aplicación (por ejemplo, Google Play Store), y deja en segundo plano la aplicación que se estaba ejecutando hasta ese momento. |
Tamaños de banner
En esta tabla se muestran los tamaños de banner estándar.
Tamaño en dp (anchura x altura) | Descripción | Disponibilidad | Constante de AdSize |
---|---|---|---|
320x50 | Banner estándar | Teléfonos y tablets | BANNER |
320x100 | Banner grande | Teléfonos y tablets | LARGE_BANNER |
300x250 | Rectángulo mediano de IAB | Teléfonos y tablets | MEDIUM_RECTANGLE |
468x60 | Banner de tamaño completo de IAB | Tablets | FULL_BANNER |
728x90 | Leaderboard de IAB | Tablets | LEADERBOARD |
Anchura proporcionada x Altura adaptativa | Banner adaptativo | Teléfonos y tablets | N/D |
Anchura de pantalla x 32|50|90 | Banner inteligente | Teléfonos y tablets | SMART_BANNER |
Consulta más información sobre los banners adaptativos, que sustituirán a los banners inteligentes. |
Limpiar anuncios de banner
Cuando hayas terminado con un elemento BannerView
, no olvides hacer una llamada al método Destroy()
antes de eliminar la referencia a él:
bannerView.Destroy();
De esta forma, se notifica al complemento que el objeto ya no se usa y que se puede reclamar la memoria que ocupa. Si no se llama a este método, se producen pérdidas de memoria.