Anuncios intersticiales

Los anuncios intersticiales son anuncios de pantalla completa que cubren la interfaz de una app hasta que el usuario los cierra. Por lo general, se muestran en puntos de transición naturales en el flujo de una app, como entre actividades o durante la pausa entre niveles de un juego. Cuando en una app se muestra un anuncio intersticial, el usuario puede presionar el anuncio y continuar hasta su destino, o bien cerrarlo y volver a la app. Caso de éxito.

En esta guía, se muestra cómo integrar anuncios intersticiales en apps para iOS y Android con el SDK de C++ de anuncios de Google para dispositivos móviles.

Requisitos previos

Realizar pruebas siempre con anuncios de prueba

Cuando compiles y pruebes tus apps, asegúrate de usar anuncios de prueba en lugar de anuncios publicados en producción. De lo contrario, podría suspenderse tu cuenta.

La forma más fácil de cargar anuncios de prueba es usar nuestro ID de unidad de anuncios de prueba dedicado para los anuncios intersticiales, que varía según la plataforma del dispositivo:

  • Android: ca-app-pub-3940256099942544/1033173712
  • iOS: ca-app-pub-3940256099942544/4411468910

Se configuraron especialmente para mostrar anuncios de prueba en cada solicitud, y puedes usarlos en tus propias apps mientras codificas, pruebas y depuras. Asegúrate de reemplazarlo por tu propio ID de unidad de anuncios antes de publicar tu app.

Consulta Anuncios de prueba para obtener más información sobre cómo funcionan estos anuncios del SDK de anuncios para dispositivos móviles.

Implementación

Estos son los pasos principales para integrar anuncios intersticiales:

  1. Carga un anuncio.
  2. Regístrate para recibir devoluciones de llamada.
  3. Muestra el anuncio y controla sus eventos de ciclo de vida.

Configura un InterstitialAd

Los anuncios intersticiales se muestran en objetos InterstitialAd, por lo que el primer paso para integrarlos en tu app es crear e inicializar un objeto InterstitialAd.

  1. Agrega el siguiente encabezado al código de C++ de tu app:

     #include "firebase/gma/interstial_ad.h"
    

  2. Declara y crea una instancia de un objeto InterstitialAd:

     firebase::gma::InterstitialAd* interstitial_ad;
     interstitial_ad = new firebase::gma::InterstitialAd();
    

  3. Inicializa la instancia InterstitialAd con tu transmisión de vista superior a un tipo AdParent. La vista superior es una referencia de jobject de JNI a una Activity de Android o un puntero a una UIView de iOS.

    // my_ad_parent is a jobject reference to an Android Activity or
    // a pointer to an iOS UIView.
    firebase::gma::AdParent ad_parent =
      static_cast<firebase::gma::AdParent>(my_ad_parent);
    firebase::Future<void> result = interstitial_ad->Initialize(ad_parent);
    
  4. Como alternativa a conservar el futuro como una variable, puedes verificar de forma periódica el estado de la operación de inicialización invocando InitializeLastResult() en el objeto InterstitialAd. Esto puede ser útil para hacer un seguimiento del proceso de inicialización en tu bucle de juego global.

    // Monitor the status of the future in your game loop:
    firebase::Future<void> result = interstitial_ad->InitializeLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      // Initialization completed.
      if(future.error() == firebase::gma::kAdErrorCodeNone) {
        // Initialization successful.
      } else {
        // An error has occurred.
      }
    } else {
      // Initialization on-going.
    }
    

Si quieres obtener más información para trabajar con firebase::Future, consulta Cómo usar interfaces Future para supervisar el estado de las llamadas al método.

Carga un anuncio

La carga de un anuncio se lleva a cabo con el método LoadAd() en el objeto InterstitialAd. El método de carga requiere que hayas inicializado el objeto InterstitialAd, y que tengas tu ID de unidad de anuncios y un objeto AdRequest. Se muestra una firebase::Future que puedes usar para supervisar el estado y el resultado de la operación de carga.

En el siguiente código, se muestra cómo cargar un anuncio una vez que InterstitialAd se inicializó correctamente:

firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = interstitial_ad->LoadAd(interstitial_ad_unit_id, ad_request);

Cómo registrarse para usar las devoluciones de llamada

Debes extender la clase FullScreenContentListener para recibir notificaciones de presentaciones de anuncios intersticiales y eventos de ciclo de vida. La subclase FullScreenContentListener personalizada se puede registrar mediante el método InterstitialAd::SetFullScreenContentListener(), y recibirá devoluciones de llamada cuando el anuncio se presente correctamente o no, así como cuando se descarte.

En el siguiente código, se muestra cómo extender la clase y asignarla al anuncio:

  class ExampleFullScreenContentListener
      : public firebase::gma::FullScreenContentListener {

   public:
    ExampleFullScreenContentListener() {}

    void OnAdClicked() override {
      // This method is invoked when the user clicks the ad.
    }

    void OnAdDismissedFullScreenContent() override {
     // This method is invoked when the ad dismisses full screen content.
    }

    void OnAdFailedToShowFullScreenContent(const AdError& error) override {
      // This method is invoked when the ad failed to show full screen content.
      // Details about the error are contained within the AdError parameter.
    }

    void OnAdImpression() override {
      // This method is invoked when an impression is recorded for an ad.
    }

    void OnAdShowedFullScreenContent() override {
      // This method is invoked when the ad showed its full screen content.
    }
  };

  ExampleFullScreenContentListener* full_screen_content_listener =
    new ExampleFullScreenContentListener();
  interstitial_ad->SetFullScreenContentListener(full_screen_content_listener);

InterstitialAd es un objeto de uso único. Una vez que se muestra un anuncio intersticial, no se puede volver a mostrar. Una práctica recomendada es cargar otro anuncio intersticial en el método OnAdDismissedFullScreenContent() de tu FullScreenContentListener para que el siguiente anuncio intersticial comience a cargarse apenas se descarte el anterior.

Muestra el anuncio

Los anuncios intersticiales deben mostrarse durante las pausas naturales en el flujo de una aplicación. Entre los niveles de un juego es un buen ejemplo o después de que el usuario completa una tarea. Si bien FullScreenContentListener se puede usar para determinar cuándo un anuncio mostró su contenido en pantalla completa, el futuro que muestre Show() también indicará cuándo el anuncio se mostró correctamente.

  firebase::Future<void> result = interstitial_ad->Show();

Prácticas recomendadas

Determina si los anuncios intersticiales son el tipo de anuncio adecuado 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 app, como compartir una imagen o completar un nivel de un juego, crea ese punto. Como el usuario espera una pausa en la acción, es fácil presentar un anuncio intersticial sin interrumpir su experiencia. Asegúrate de considerar en qué puntos del flujo de trabajo de tu app mostrarás anuncios intersticiales y cómo es probable que responda el usuario.
Recuerda pausar la acción cuando muestres un anuncio intersticial.
Existen distintos tipos de anuncios intersticiales: de texto, con imágenes y de video, entre otros. Es importante asegurarse de que, cuando tu app muestre un anuncio intersticial, también suspenda el uso de algunos recursos para permitir que el anuncio los aproveche. Por ejemplo, cuando realices la llamada para mostrar un anuncio intersticial, asegúrate de pausar la salida de audio que produce tu app. Puedes reanudar la reproducción de sonidos en el método OnAdDismissedFullScreenContent de tu FullScreenContentListener instalado, que se invocará cuando el usuario haya terminado de interactuar con el anuncio. Además, considera la opción de detener de forma temporal cualquier tarea de procesamiento intensa (como un bucle de juego) mientras se muestra el anuncio. Esto garantizará que el usuario no experimente gráficos lentos o que no respondan, ni videos entrecortados.
Proporciona un tiempo de carga adecuado.
Así como es importante asegurarse de mostrar anuncios intersticiales en un momento apropiado, también lo es asegurarse de que el usuario no tenga que esperar a que se carguen. Si cargas el anuncio con anticipación antes de su intención, puedes asegurarte de que tu app tenga un anuncio intersticial completamente cargado cuando llegue el momento de mostrarlo.
No sobrecargues al usuario con anuncios.
Si bien aumentar la frecuencia de los anuncios intersticiales en tu app puede parecer una excelente manera de aumentar los ingresos, también puede perjudicar la experiencia del usuario y disminuir las tasas de clics. Asegúrate de que no se interrumpa a los usuarios con tanta frecuencia como para que ya no puedan disfrutar de tu app.
No uses el futuro de carga completa para mostrar el anuncio intersticial.
Esto puede generar una experiencia del usuario deficiente. En su lugar, precarga el anuncio antes de que tengas que mostrarlo.

Recursos adicionales

Ejemplo en GitHub

Instructivos de video de Mobile Ads Frameworks

Historias de éxito

Próximos pasos