Los anuncios de banner ocupan un lugar en el diseño de una app, ya sea en la parte superior o inferior de la pantalla del dispositivo. Permanecen en la pantalla mientras los usuarios interactúan con la aplicación y se pueden actualizar automáticamente después de un período de tiempo determinado. Si no tienes mucha experiencia con la publicidad para dispositivos móviles, este formato es una excelente opción para comenzar. Lee este caso de éxito.
Requisitos previos
- Completa la Introducción.
- (Solo para Android) Familiaridad con el uso de referencias
jobjectde JNI (consulta las sugerencias de JNI de Android).
Haz siempre una comprobación con anuncios de prueba
Al crear y verificar tus apps, asegúrate de usar anuncios de prueba en vez de anuncios activos en fase de producción. De lo contrario, podría suspenderse tu cuenta.
La forma más sencilla de cargar anuncios de prueba es usar nuestro ID de unidad de anuncios de prueba exclusivo para banners, que varía según la plataforma del dispositivo:
- Android:
ca-app-pub-3940256099942544/6300978111 - iOS:
ca-app-pub-3940256099942544/2934735716
Estos IDs de unidad de anuncios se configuraron especialmente para devolver anuncios de prueba en cada solicitud, y puedes usarlos en tus propias apps durante las tareas de programación, prueba y depuración. Solo asegúrate de reemplazarlo por tu propio ID de unidad de anuncios antes de publicar tu app.
Consulta la página Habilita los anuncios de prueba para obtener más información sobre cómo funcionan esos anuncios del SDK de anuncios para dispositivos móviles.
Implementación
Configura un AdView
Los anuncios de banner se muestran en objetos AdView, por lo que el primer paso para integrar este tipo de anuncios es crear y posicionar un AdView.
Agrega el siguiente encabezado al código de C++ de tu app:
#include "firebase/gma/ad_view.h"
Declara y crea una instancia de un objeto
AdView:firebase::gma::AdView* ad_view; ad_view = new firebase::gma::AdView();
Crea un
AdSizee inicializa la vista de anuncios con la vista superiorAdParent. La vista superior es una referenciajobjectde JNI a unaActivityde Android o un puntero a unUIViewde iOS convertido a un tipoAdParent:// 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
result = ad_view->Initialize(ad_parent, kBannerAdUnit, firebase::gma::AdSize::kBanner); Como alternativa a retener el futuro como una variable, puedes verificar periódicamente el estado de la operación de inicialización invocando
InitializeLastResult()en el objetoAdView. 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 = ad_view->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 Usa Futures para supervisar el estado de finalización de las llamadas a métodos.
Establece la posición del anuncio
Puedes establecer la posición del AdView en cualquier momento después de que se inicialice:
firebase::Future<void> result = ad_view->SetPosition(firebase::gma::AdView::kPositionTop);
Carga un anuncio
Puedes cargar un anuncio una vez que se haya inicializado el AdView:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result = ad_view->LoadAd(my_ad_request);
Los objetos AdRequest representan una sola solicitud de anuncio y contienen propiedades para información como la segmentación.
Muestra el anuncio
Por último, muestra el anuncio en la pantalla llamando a Show(). Se puede invocar este método en cualquier momento después de que se inicialice el anuncio:
firebase::Future<void> result = ad_view->Show();
Eventos de anuncios
El SDK de C++ de anuncios de Google para dispositivos móviles proporciona una clase AdListener que puedes extender y pasar a AdView::SetListener() para recibir notificaciones sobre los cambios en el estado de la vista de anuncios.
Extender métodos en AdListener es opcional, por lo que solo debes implementar los que desees. En el siguiente ejemplo, se muestra la implementación de una clase que extiende todos los métodos de la clase AdListener:
class ExampleAdListener : public firebase::gma::AdListener { public: ExampleAdListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdClosed() override { // This method is invoked when the user closes the ad. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdOpened() override { // This method is invoked when an ad opens an overlay that covers the screen. } }; ExampleAdListener* ad_listener = new ExampleAdListener(); ad_view->SetAdListener(ad_listener);
Tamaños de banner
En la siguiente tabla, se indican los tamaños de banner estándar.
| Tamaño en puntos (ancho × alto) | Descripción | Disponibilidad | Constante de firebase::gma::AdSize |
|---|---|---|---|
| 320x50 | Banner | Teléfonos y tablets | kBanner |
| 320x100 | Banner grande | Teléfonos y tablets | kLargeBanner |
| 300 × 250 | Rectángulo mediano de IAB | Teléfonos y tablets | kMediumRectangle |
| 468x60 | Banner de tamaño completo de IAB | Tablets | kFullBanner |
| 728x90 | Leaderboard de IAB | Tablets | kLeaderboard |
| Ancho proporcionado × altura adaptable | Banner adaptable | Teléfonos y tablets | N/A |
Tamaños de anuncios personalizados
Para definir un tamaño de banner personalizado, establece las dimensiones deseadas con el
firebase::gma::AdSize
constructor con parámetros de ancho y alto, como se muestra aquí:
firebase::gma::AdSize ad_size(/*width=*/320, /*height=*/50);
Recursos adicionales
Ejemplo en GitHub
- Consulta el código fuente de nuestra app de ejemplo de inicio rápido en GitHub.