Anuncios intersticiales

Los anuncios intersticiales son anuncios a pantalla completa que cubren la interfaz de la aplicación en la que se alojan. Se suelen mostrar en las transiciones naturales de una aplicación, como al pasar de un nivel a otro de un juego. Cuando una aplicación muestra un anuncio intersticial, el usuario tiene la opción de tocar el anuncio e ir a la página de destino o cerrarlo y volver a la aplicación.

En esta guía aprenderás a integrar anuncios intersticiales en una aplicación de Unity.

Requisitos previos

Completa la sección Primeros pasos. Tu aplicación de Unity ya debería tener importado el complemento para Unity de anuncios de Google para móviles.

Crear anuncios intersticiales

El primer paso para mostrar un intersticial consiste en crear un objeto InterstitialAd en una secuencia de comandos adjunta a un GameObject.

using GoogleMobileAds.Api;
…

private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
}

El constructor de InterstitialAd contiene el siguiente parámetro:

  • adUnitId: el ID del bloque de anuncios de AdMob desde el que InterstitialAd carga los anuncios.

Es importante tener en cuenta cómo se utilizan los diferentes bloques de anuncios en función de la plataforma elegida. 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.

Comprobar siempre las aplicaciones con anuncios de prueba

El código de ejemplo anterior contiene un ID de bloque de anuncios que puedes usar libremente para solicitar anuncios. 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 tu aplicación, tendrás que configurar tu dispositivo como un dispositivo de pruebas durante la fase de desarrollo. Esto es extremadamente importante, ya que las pruebas con anuncios reales (aunque nunca los toques) están prohibidas por la política de AdMob y pueden provocar la suspensión de tu cuenta. Consulta Anuncios de prueba para descubrir cómo asegurarte de que siempre usas anuncios de prueba durante la fase de desarrollo.

Cargar anuncios

Después de instanciar InterstitialAd, lo siguiente que debes hacer es cargar un anuncio. Para eso se utiliza el método loadAd() en la clase InterstitialAd. 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:

using GoogleMobileAds.Api;
…
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

Mostrar anuncios

Los anuncios intersticiales deben mostrarse durante las pausas naturales que se producen en el flujo de una aplicación. Por ejemplo, entre los niveles de un juego o después de que el usuario complete una tarea. Para mostrar un intersticial, usa el método isLoaded() para verificar que ha terminado de cargarse y, después, llama a show().

El anuncio intersticial del ejemplo de código anterior podría mostrarse al final de un juego, como puedes ver a continuación:

private void GameOver()
{
  if (this.interstitial.IsLoaded()) {
    this.interstitial.Show();
  }
}

Eventos de anuncios

Para personalizar aún más el comportamiento de tu anuncio, puedes añadir varios eventos a su ciclo de vida: carga, apertura, cierre, etc. Para configurar la escucha de estos eventos, registra un delegado para el EventHandler adecuado, tal como se muestra a continuación.

using GoogleMobileAds.Api;
…
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

     // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);

    // Called when an ad request has successfully loaded.
    this.interstitial.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request failed to load.
    this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Called when an ad is shown.
    this.interstitial.OnAdOpening += HandleOnAdOpened;
    // Called when the ad is closed.
    this.interstitial.OnAdClosed += HandleOnAdClosed;
    // Called when the ad click caused the user to leave the application.
    this.interstitial.OnAdLeavingApplication += HandleOnAdLeavingApplication;

    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.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. Transmite una instancia de HandleAdFailedToLoadEventArgs con un elemento Message que describe el error:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
  print("Interstitial 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 se termina de cargar.
OnAdFailedToLoad El evento OnAdFailedToLoad se invoca cuando no se puede cargar un anuncio. El parámetro Message describe el tipo de error que se ha producido.
OnAdOpening Este método se invoca cuando el anuncio mostrado ocupa toda la pantalla del dispositivo.
OnAdClosed Este método se invoca cuando el anuncio intersticial se cierra debido a que el usuario toca el icono de cierre o el botón Atrás. Si la aplicación detiene la salida de audio o el bucle del juego, este es un buen lugar para reanudarlos.
OnAdLeavingApplication Este método se invoca después de OnAdOpened, cuando un usuario hace clic y abre otra aplicación (como Google Play), dejando en segundo plano la aplicación actual.

Hacer limpieza de anuncios intersticiales

Cuando hayas terminado con un elemento InterstitialAd, no olvides hacer una llamada al método Destroy() antes de eliminar la referencia a él:

interstitial.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.

Algunas prácticas recomendadas

Plantéate si los intersticiales son el tipo de anuncio más adecuado para tu aplicación.
Los anuncios intersticiales funcionan mejor en las aplicaciones con puntos de transición naturales. Por ejemplo, al finalizar una tarea en la aplicación, como compartir una imagen o completar un nivel de un juego. En esos momentos, como el usuario espera que se produzca una interrupción en la acción, es fácil presentar un anuncio intersticial sin interrumpir su experiencia. Decide en qué puntos del flujo de trabajo de la aplicación se mostrarán anuncios intersticiales y analiza cómo crees que responderán los usuarios.
Recuerda pausar la acción cuando se muestra un anuncio intersicial.
Existen distintos tipos de anuncios intersticiales: texto, imagen, vídeo y otros. Es importante que cuando la aplicación muestre un anuncio intersticial se suspenda el uso de algunos recursos para que el anuncio pueda aprovecharlos. Por ejemplo, cuando realices la llamada para mostrar un anuncio intersticial, pausa todas las salidas de audio que produzca la aplicación. La reproducción de sonidos se reanuda en el controlador de eventos onAdClosed(), que se invocará cuando el usuario haya terminado de interactuar con el anuncio. Además, mientras se muestra el anuncio, es conveniente detener temporalmente cualquier tarea que consuma muchos recursos (como un bucle de juego). De esta forma, el usuario no se encontrará con gráficos lentos o que no respondan ni con vídeos entrecortados.
Define un tiempo de carga adecuado.
Evitar que el usuario tenga que esperar a que los anuncios intersticiales se carguen es igual de importante que mostrarlos en el momento adecuado. Para que la aplicación tenga un anuncio intersticial completamente cargado y listo cuando llegue el momento de mostrarlo, cárgalo por adelantado. Para ello, llama a loadAd() antes de a show().
No satures al usuario con anuncios.
Aunque aumentar la frecuencia de los anuncios intersticiales en tu aplicación te parezca una excelente forma de aumentar los ingresos, también puede degradar la experiencia de usuario y provocar que disminuya el porcentaje de clics. Si interrumpes a los usuarios con demasiada frecuencia, no disfrutarán de la experiencia de utilizar tu aplicación.

Otros recursos

Ejemplos

Pasos siguientes

  • Crea tu propio bloque de anuncios intersticiales en la interfaz de AdMob.
  • Prueba otro formato de anuncio:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.