Los anuncios intersticiales son anuncios de pantalla completa que cubren la interfaz de la aplicación que la aloja. Normalmente, se muestran en puntos de transición naturales en el flujo de una aplicación, como durante la pausa entre niveles de un juego. Cuando una app muestra un anuncio intersticial, el usuario tiene la opción de presionar el anuncio y continuar su destino o ciérrala y regresa a la app.
En esta guía, se explica cómo integrar anuncios intersticiales en una app para Unity.
Requisitos previos
- Completa la Guía de introducción.
Probar siempre con anuncios de prueba
El siguiente código de muestra contiene un ID de unidad de anuncios que puedes usar para solicitar anuncios de prueba. Se configuró de forma especial para mostrar anuncios de prueba en lugar de mostrar anuncios de producción para cada solicitud, por lo que es seguro de usar.
Sin embargo, después de haber registrado una app en la de Ad Manager y creaste tu propia unidad de anuncios IDs para usar en tu app, configura tu dispositivo como una prueba de manera explícita dispositivo durante en el desarrollo de software.
/21775744923/example/interstitial
Inicializa el SDK de Mobile Ads
Antes de cargar anuncios, haz que tu app inicialice el SDK de anuncios para dispositivos móviles mediante una llamada
MobileAds.Initialize()
Esto solo se debe hacer una vez, idealmente cuando se inicia la app.
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize((InitializationStatus initStatus) =>
{
// This callback is called once the MobileAds SDK is initialized.
});
}
}
Si usas mediación, espera a que se produzca la devolución de llamada antes de cargar los anuncios, ya que de esta manera, se garantizará que se inicialicen todos los adaptadores de mediación.
Implementación
Los pasos principales para integrar anuncios intersticiales son los siguientes:
- Carga el anuncio intersticial
- Muestra el anuncio intersticial
- Cómo escuchar eventos de anuncios intersticiales
- Cómo limpiar el anuncio intersticial
- Precarga el siguiente anuncio intersticial
Carga el anuncio intersticial
Para cargar un anuncio intersticial, puedes utilizar el método estático Load()
en la clase InterstitialAd
. El método de carga requiere un ID de unidad de anuncios, un
AdManagerAdRequest
y un controlador de finalización que
se llama cuando la carga de anuncios se realiza correctamente o falla. El tráfico cargado
El objeto AdManagerInterstitialAd
se proporciona como parámetro en
el controlador de finalización. En el siguiente ejemplo, se muestra cómo cargar un AdManagerInterstitialAd
.
// This ad unit is configured to always serve test ads.
private string _adUnitId = "/21775744923/example/interstitial";
private InterstitialAd _interstitialAd;
/// <summary>
/// Loads the interstitial ad.
/// </summary>
public void LoadInterstitialAd()
{
// Clean up the old ad before loading a new one.
if (_interstitialAd != null)
{
_interstitialAd.Destroy();
_interstitialAd = null;
}
Debug.Log("Loading the interstitial ad.");
// create our request used to load the ad.
var adRequest = new AdManagerAdRequest();
// send the request to load the ad.
AdManagerInterstitialAd.Load(_adUnitId, adRequest,
(InterstitialAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("interstitial ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Interstitial ad loaded with response : "
+ ad.GetResponseInfo());
_interstitialAd = ad;
});
}
Muestra el anuncio intersticial
Para mostrar un anuncio intersticial cargado, llama al método Show()
en la
Instancia AdManagerInterstitialAd
. Es posible que los anuncios se muestren una vez por carga. Utiliza el método CanShowAd()
para verificar que el anuncio esté listo para mostrarse.
/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowInterstitialAd()
{
if (_interstitialAd != null && _interstitialAd.CanShowAd())
{
Debug.Log("Showing interstitial ad.");
_interstitialAd.Show();
}
else
{
Debug.LogError("Interstitial ad is not ready yet.");
}
}
Cómo escuchar eventos de anuncios intersticiales
Para personalizar aún más el comportamiento de su anuncio, puede vincular en el ciclo de vida del anuncio. Para escuchar estos eventos, registra un delegado como se muestra a continuación.
private void RegisterEventHandlers(InterstitialAd interstitialAd)
{
// Raised when the ad is estimated to have earned money.
interstitialAd.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
interstitialAd.OnAdImpressionRecorded += () =>
{
Debug.Log("Interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
interstitialAd.OnAdClicked += () =>
{
Debug.Log("Interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
interstitialAd.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
interstitialAd.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
};
}
Cómo limpiar el anuncio intersticial
Cuando termines con un AdManagerInterstitialAd
, haz
asegúrate de llamar al método Destroy()
antes de descartar tu referencia:
_interstitialAd.Destroy();
Esto notifica al complemento que el objeto ya no se usa y la memoria que ocuparse de ellos. Si no se llama a este método, se generarán fugas de memoria.
Precarga el siguiente anuncio intersticial
Los anuncios intersticiales son un objeto de un solo uso. Esto significa que, cuando se muestre
no se puede volver a usar el objeto. Para solicitar otro anuncio intersticial,
crea un nuevo objeto AdManagerInterstitialAd
.
Para preparar un anuncio intersticial para la próxima oportunidad de impresión, precarga el
anuncio intersticial una vez que OnAdFullScreenContentClosed
o
Se generó OnAdFullScreenContentFailed
evento de anuncio.
private void RegisterReloadHandler(InterstitialAd interstitialAd)
{
// Raised when the ad closed full screen content.
interstitialAd.OnAdFullScreenContentClosed += ()
{
Debug.Log("Interstitial Ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
// Raised when the ad failed to open full screen content.
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
}
Eventos de aplicaciones
Los eventos de aplicaciones le permiten crear anuncios que pueden enviar mensajes a su código de aplicación. La app puede tomar medidas en función de estos mensajes.
Puedes escuchar eventos de apps específicos de Ad Manager con AppEvent
. Estos eventos
puede ocurrir en cualquier momento del ciclo de vida del anuncio, incluso antes de que se llame a la carga.
namespace GoogleMobileAds.Api.AdManager;
/// The App event message sent from the ad.
public class AppEvent
{
// Name of the app event.
string Name;
// Argument passed from the app event.
string Value;
}
Se genera un OnAppEventReceived
cuando se produce un evento de aplicación en un anuncio. Este es un
ejemplo de cómo controlar este evento en tu código:
_interstitialAd.OnAppEventReceived += (AppEvent args) =>
{
Debug.Log($"Received app event from the ad: {args.Name}, {args.Value}.");
};
Este es un ejemplo que muestra cómo cambiar el color de fondo de tu app según un evento de app con un nombre de color:
_interstitialAd.OnAppEventReceived += (AppEvent args) =>
{
if (args.Name == "color")
{
Color color;
if (ColorUtility.TryParseColor(arg.Value, out color))
{
gameObject.GetComponent<Renderer>().material.color = color;
}
}
};
Esta es la creatividad correspondiente que envía el evento de aplicación de color:
<html>
<head>
<script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
// Send a color=green event when ad loads.
admob.events.dispatchAppEvent("color", "green");
document.getElementById("ad").addEventListener("click", function() {
// Send a color=blue event when ad is clicked.
admob.events.dispatchAppEvent("color", "blue");
});
});
</script>
<style>
#ad {
width: 320px;
height: 50px;
top: 0px;
left: 0px;
font-size: 24pt;
font-weight: bold;
position: absolute;
background: black;
color: white;
text-align: center;
}
</style>
</head>
<body>
<div id="ad">Carpe diem!</div>
</body>
</html>
Prácticas recomendadas
- Determina si los anuncios intersticiales son la clase de anuncio adecuada para tu app.
- Los anuncios intersticiales funcionan mejor en apps con puntos de transición naturales. La conclusión de una tarea dentro de una aplicación, como compartir una imagen o completar una nivel del juego, crea un punto así. Asegúrate de considerar en qué puntos de tu el flujo de la app para mostrar mejores anuncios intersticiales y cómo es probable que el usuario responda.
- Detén la acción cuando se muestre un anuncio intersticial.
- Existen varios tipos de anuncios intersticiales, como de texto, con imágenes o de video. Es importante que te asegures de que cuando tu app muestre una
anuncio intersticial, también suspende su uso de algunos recursos para permitir que el anuncio
los aproveche. Por ejemplo, cuando realizas la llamada para mostrar un
anuncio intersticial, asegúrese de pausar las salidas de audio que produce su aplicación.
Puedes reanudar la reproducción de sonidos en el evento
OnAdFullScreenContentClosed()
. que se puede invocar cuando el usuario termina de interactuar con el anuncio. En considera la posibilidad de detener temporalmente cualquier tarea de procesamiento intensa, como una mientras se muestra el anuncio. Esto garantiza que el usuario Si el usuario tiene gráficos lentos o que no responden, o video entrecortado - No sobrecargues al usuario con anuncios.
- Aunque aumentar la frecuencia de los anuncios intersticiales en tu app podría parecer como una excelente manera de aumentar los ingresos, también puede perjudicar la experiencia del usuario y tasas de clics más bajas. Asegúrate de que la frecuencia de las interrupciones experimentadas por los usuarios no sea tan alta como para que estos ya no puedan disfrutar de tu app.
Recursos adicionales
- Ejemplo de HelloWorld: Representación minimalista de todos los formatos de anuncios.