Los anuncios intersticiales son anuncios de pantalla completa que cubren la interfaz de una aplicación hasta que que el usuario cerró. 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 una app muestra un anuncio intersticial, el usuario puede presionarlo 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 aplicaciones para iOS y Android con el SDK de C++ de anuncios de Google para dispositivos móviles.
Requisitos previos
- Completa la sección Comenzar.
- (Solo para Android) Conocimientos de referencias
jobject
de JNI (consulta Sugerencias de JNI de Android).
Probar siempre con anuncios de prueba
Cuando compiles y pruebes tus apps, asegúrate de usar anuncios de prueba en lugar de anuncios activos y en producción. De lo contrario, podría suspenderse tu cuenta.
La forma más sencilla de cargar anuncios de prueba es usar nuestro ID exclusivo de unidad de anuncios de prueba para anuncios intersticiales, que varían según la plataforma del dispositivo:
- Android:
ca-app-pub-3940256099942544/1033173712
- iOS:
ca-app-pub-3940256099942544/4411468910
Se configuraron de forma especial para mostrar anuncios de prueba para cada solicitud. puedes usarla en tus propias apps mientras codificas, pruebas y depuras. Solo asegúrate de reemplazarlo con tu propio ID de unidad de anuncios antes de publicar tu .
Para obtener más información sobre cómo funcionan los anuncios de prueba del SDK de anuncios para dispositivos móviles, consulta Anuncios de prueba.
Implementación
Estos son los pasos principales para integrar anuncios intersticiales:
- Carga un anuncio.
- Regístrate para recibir devoluciones de llamada.
- Mostrar el anuncio y controlar sus eventos de ciclo de vida
Configura un InterstitialAd
Los anuncios intersticiales se muestran en objetos InterstitialAd
; por lo tanto, el primer paso
para integrar anuncios intersticiales en tu app es crear e inicializar un
InterstitialAd
.
Agrega el siguiente encabezado al código de C++ de la app:
#include "firebase/gma/interstial_ad.h"
Declara un objeto
InterstitialAd
y crea una instancia de este:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
Inicializa la instancia de
InterstitialAd
con tu transmisión de vista superior a unAdParent
. La vista superior es una referenciajobject
de JNI a unActivity
de Android o un puntero a unUIView
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);
Como alternativa a mantener el futuro como una variable, puedes periódicamente verificarás el estado de la operación de inicialización invocando
InitializeLastResult()
en el objetoInterstitialAd
Esto podría ser útil para realizar 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. }
Para obtener más información sobre cómo 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 realiza con el método LoadAd()
en la
InterstitialAd
. El método de carga requiere que hayas inicializado el
objeto InterstitialAd
y que tienes el ID de tu unidad de anuncios y una AdRequest
. Se muestra una firebase::Future
que puedes usar para supervisar el estado
y el resultado de la operación de carga.
El siguiente código muestra cómo cargar un anuncio una vez que se InterstitialAd
inicializado 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 recibir devoluciones de llamada
Debes extender la clase FullScreenContentListener
para recibir
notificaciones de presentación de anuncios intersticiales y eventos del ciclo de vida. Tu configuración personalizada
La subclase FullScreenContentListener
se puede registrar a través del
InterstitialAd::SetFullScreenContentListener()
y recibirá
devoluciones de llamada cuando el anuncio se presenta de forma correcta o no, así como cuando
se descarta.
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 un solo uso. Esto significa que, una vez que
se muestre un anuncio intersticial,
se muestra el anuncio, 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 como
tan pronto como se descarte la anterior.
Mostrar el anuncio
Los anuncios intersticiales deben mostrarse durante pausas naturales en el flujo de una aplicación.
Entre los niveles de un juego, esto 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 tiene
muestre su contenido en pantalla completa, el futuro que muestre Show()
también indicará
una vez que el anuncio se haya mostrado 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. El Conclusión de una tarea dentro de una app, como compartir una imagen o completar un juego crea un punto de este tipo. Como el usuario espera un receso en la realizar una acción, presentar un anuncio intersticial sin interrumpir una experiencia fluida a los desarrolladores. Asegúrate de considerar en qué puntos del flujo de trabajo de tu app anuncios intersticiales de Display y cómo es probable que responda el usuario.
- Recuerda pausar la acción cuando muestres un anuncio intersticial.
- Existen varios tipos de anuncios intersticiales: de texto, con imágenes,
video y mucho más. 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 método
OnAdDismissedFullScreenContent
de tuFullScreenContentListener
instalado, que se invocará cuando el usuario terminó de interactuar con el anuncio. Además, considera detener temporalmente cualquier tarea de cálculo intensa (como un bucle de juego) mientras se muestra el anuncio. Esto garantizará que el usuario no experimente demoras Los gráficos no responden o el video se entrecorta. - Proporciona un tiempo de carga adecuado.
- Así como es importante asegurarse de mostrar anuncios intersticiales en una el tiempo adecuado, también es importante que el usuario no tenga que esperar para que se carguen. Cargar el anuncio por adelantado antes de su intención puede garantizar de que tu app tenga un anuncio intersticial completamente cargado en primer lugar.
- 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 disminuir las tasas de clics. Asegúrate de que los usuarios no tengan tanta frecuencia que ya no puedan disfrutar del uso de la app.
- No uses el futuro de finalización de la carga para mostrar el anuncio intersticial.
- Esto puede generar una mala experiencia del usuario. En su lugar, carga previamente el anuncio antes de necesitas mostrarla.
Recursos adicionales
Ejemplo en GitHub
- Consulta el código fuente de nuestro ejemplo app de inicio rápido en GitHub.
Instructivos en video de Mobile Ads Garaje
Historias de éxito
Próximos pasos
- Si aún no lo has hecho, crea tu propia unidad de anuncios intersticiales IU de AdMob.
- Obtén información sobre la segmentación de anuncios y de anuncios intersticiales.