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 queBannerView
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ónAdPosition
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 anuncio | Descripció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. |
Tamaños de banner
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.