Esta guía de inicio rápido está destinada a publicadores y desarrolladores que deseen utilizar AdMob para monetizar una app creada con Firebase. Si no planeas incluir Firebase en tu app, visita la guía independiente de AdMob.
Si aún no lo has hecho, obtén más información sobre todos los beneficios de usar AdMob, Firebase y Google Analytics en conjunto.
Si es la primera vez que usas esta guía, te recomendamos que descargues la app de prueba del SDK de C++ de anuncios de Google para dispositivos móviles y que la uses a fin de seguir los temas que se tratan aquí.
Antes de comenzar
Si aún no tienes un proyecto ni una app de Firebase, sigue la guía de introducción de Firebase: Agrega Firebase a tu proyecto de C++.
Asegúrate de que Google Analytics esté habilitado en tu proyecto de Firebase:
Si quieres crear un proyecto de Firebase nuevo, habilita Google Analytics durante el flujo de trabajo de su creación.
Si ya tienes un proyecto de Firebase que no tiene habilitado Google Analytics, puedes habilitarlo en la pestaña Integraciones de la
. Configuración del proyecto
Paso 1: Configura la app en tu cuenta de AdMob
Registra cada variante de plataforma de tu app como una aplicación de AdMob.
Accede o regístrate para obtener una cuenta de AdMob.
Registra cada variante de plataforma de tu app en AdMob. Con este paso, se crea una app de AdMob con un ID de app de AdMob único que necesitarás más adelante en esta guía.
Se te pedirá que agregues el SDK de anuncios para dispositivos móviles a tu app. Obtendrás instrucciones detalladas para esta tarea más adelante en esta guía.
Vincula cada una de tus apps de AdMob con la aplicación de Firebase correspondiente.
Este paso es opcional, pero muy recomendable. Obtén más información sobre los beneficios de habilitar las métricas del usuario y vincular tus apps de AdMob a Firebase.
Para cada variante de la plataforma, completa los siguientes pasos en el panel Apps de tu cuenta de AdMob:
Habilita las métricas del usuario para permitir que AdMob procese y muestre los datos de estadísticas seleccionados en tu cuenta. También debes vincular tu app de AdMob a Firebase.
Vincula la app de AdMob a tu proyecto de Firebase existente y a tu app de Firebase correspondiente.
Asegúrate de ingresar el mismo nombre de paquete (Android) o ID del paquete (iOS) que ingresaste para la app de Firebase. Busca el nombre del paquete o el ID del paquete de la app de Firebase en la tarjeta Tus apps, en
Configuración del proyecto . >
Paso 2: Agrega el ID de la app de AdMob a tu aplicación
Android
Agrega el
ID de app de AdMob
al archivo AndroidManifest.xml
de la aplicación con la etiqueta <meta-data>
, tal como
se muestra a continuación.
<manifest> <application> <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 --> <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ADMOB_APP_ID"/> </application> </manifest>
iOS
En el archivo Info.plist
de tu aplicación, agrega una clave GADApplicationIdentifier
con un
valor de string de tu
ID de app de AdMob.
Puedes realizar este cambio de manera programática:
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 --> <key>GADApplicationIdentifier</key> <string>ADMOB_APP_ID</string>
O bien, usa el editor de la lista de propiedades para modificarlo:
Paso 3: Agrega el SDK de anuncios de Google para dispositivos móviles
Dado que el SDK de C++ de anuncios de Google para dispositivos móviles reside en el espacio de nombres
de firebase::gma
, descarga el SDK de Firebase C++
y, luego, descomprímelo en el directorio que desees.
El SDK de Firebase C++ no es específico de una plataforma, pero sí requiere parámetros de configuración de bibliotecas específicas de una plataforma.
Android
En el archivo
gradle.properties
de tu proyecto, especifica la ubicación del SDK descomprimido:systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
Agrega el siguiente contenido al archivo
settings.gradle
de tu proyecto:def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir') gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir" includeBuild "$firebase_cpp_sdk_dir"
En el archivo Gradle (generalmente
app/build.gradle
) de tu módulo (a nivel de app), agrega el siguiente contenido, que incluye la dependencia de la biblioteca del SDK de C++ de anuncios de Google para dispositivos móviles.android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependency for the Google Mobile Ads C++ SDK apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { gma }
Agrega el siguiente contenido al archivo
CMakeLists.txt
de tu proyecto.# Add Firebase libraries to the target using the function from the SDK. add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) # Add the Google Mobile Ads C++ SDK. # The Firebase C++ library `firebase_app` is required, # and it must always be listed last. set(firebase_libs firebase_gma firebase_app ) target_link_libraries(${target_name} "${firebase_libs}")
Sincroniza tu app para garantizar que todas las dependencias tengan las versiones necesarias.
Listo. Configuraste tu app de C++ a fin de usar el SDK de C++ de anuncios de Google para dispositivos móviles.
iOS
Los pasos que se indican en esta sección son un ejemplo de cómo agregar el SDK de C++ de anuncios de Google para dispositivos móviles a tu proyecto de iOS.
Ejecuta el siguiente comando para obtener la versión 1 de CocoaPods o una más reciente.
sudo gem install cocoapods --pre
Agrega el Pod de anuncios de Google para dispositivos móviles del SDK descomprimido.
Crea un Podfile si aún no tienes uno:
cd YOUR_APP_DIRECTORY
pod init
En tu Podfile, agrega el Pod destinado al SDK de C++ de anuncios de Google para dispositivos móviles:
pod 'Google-Mobile-Ads-SDK'
Instala el Pod y abre el archivo
.xcworkspace
en Xcode.pod install
open YOUR_APP.xcworkspace
Agrega los siguientes frameworks del SDK de Firebase C++ al proyecto:
xcframeworks/firebase.xcframework
xcframeworks/firebase_gma.xcframework
Listo. Configuraste tu app de C++ a fin de usar el SDK de C++ de anuncios de Google para dispositivos móviles.
Paso 4: Inicializa el SDK de anuncios de Google para dispositivos móviles
Antes de cargar anuncios, llama a firebase::gma::Initialize()
a fin de inicializar el SDK de anuncios para dispositivos móviles.
Esta llamada muestra el código firebase::Future
, que se completa una vez que finaliza la inicialización
(o después de un tiempo de espera de 30 segundos). Llama a este método solo una vez y lo
antes posible, idealmente cuando se inicia la app.
Aquí te mostramos un ejemplo de cómo llamar a Initialize()
:
Android
// Initialize the Google Mobile Ads library firebase::InitResult result; Future<AdapterInitializationStatus> future = firebase::gma::Initialize(jni_env, j_activity, &result); if (result != kInitResultSuccess) { // Initialization immediately failed, most likely due to a missing dependency. // Check the device logs for more information. return; } // Monitor the status of the future. // See "Use a Future to monitor the completion status of a method call" below. if (future.status() == firebase::kFutureStatusComplete && future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization completed. } else { // Initialization on-going, or an error has occurred. }
iOS
// Initialize the Google Mobile Ads library. firebase::InitResult result; Future<AdapterInitializationStatus> future = firebase::gma::Initialize(&result); if (result != kInitResultSuccess) { // Initialization immediately failed, most likely due to a missing dependency. // Check the device logs for more information. return; } // Monitor the status of the future. // See "Use a Future to monitor the completion status of a method call" below. if (future.status() == firebase::kFutureStatusComplete && future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization completed. } else { // Initialization on-going, or an error has occurred. }
Usa el espacio de nombres Future
para supervisar el estado de una llamada de método
Future
te permite determinar el estado de las llamadas a
métodos asíncronos.
Por ejemplo, cuando tu app llama a firebase::gma::Initialize()
, se crea
y se muestra un nuevo firebase::Future
. Luego, la app puede consultar el
status()
de Future
para determinar cuándo se completó la inicialización.
Una vez completada, tu app puede invocar a result()
para obtener el
AdapterInitializationStatus
resultante.
Los métodos que muestran un Future
tienen un método “LastResult” correspondiente que
las apps pueden usar para recuperar la interfaz Future
más reciente de una acción determinada. Por
ejemplo, firebase::gma::Initialize()
tiene un método denominado
firebase::gma::InitializeLastResult()
, que muestra un Future
que tu app puede
usar para verificar el estado de la última llamada a firebase::gma::Initialize()
.
Si el estado de Future
está completo y su código de error es
firebase::gma::kAdErrorCodeNone
, la operación se completó
con éxito.
También puedes registrar devoluciones de llamada que se invocarán cuando se complete una interfaz Future
. En
algunos casos, la devolución de llamada se ejecutará en un subproceso diferente, por lo que debes asegurarte
de que tu código sea seguro para los subprocesos. Este fragmento de código usa un marcador de función para la
devolución de llamada:
// Registers the OnCompletion callback. user_data is a pointer that is passed verbatim
// to the callback as a void*. This allows you to pass any custom data to the callback
// handler. In this case, the app has no data, so you must pass nullptr.
firebase::gma::InitializeLastResult().OnCompletion(OnCompletionCallback,
/*user_data=*/nullptr);
// The OnCompletion callback function.
static void OnCompletionCallback(
const firebase::Future<AdapterInitializationStatus>& future, void* user_data) {
// Called when the Future is completed for the last call to firebase::gma::Initialize().
// If the error code is firebase::gma::kAdErrorCodeNone,
// then the SDK has been successfully initialized.
if (future.error() == firebase::gma::kAdErrorCodeNone) {
// success!
} else {
// failure.
}
}
Paso 5: Elige un formato de anuncio para implementar en tu app
AdMob ofrece diferentes formatos de anuncios para que puedas elegir el que mejor se adapte a la experiencia del usuario de tu app. Haz clic en el botón de un formato de anuncio para ver las instrucciones de implementación detalladas en la documentación de AdMob.
Banner
Anuncios rectangulares que aparecen en la parte superior o inferior de la pantalla del dispositivo
Los anuncios en forma de banner permanecen en la pantalla mientras los usuarios interactúan con la app y se pueden actualizar de forma automática después de un período determinado. Si eres nuevo en la publicidad para dispositivos móviles, este formato es una gran alternativa para comenzar.
Implementa anuncios en forma de bannerIntersticial
Anuncios de pantalla completa que cubren la interfaz de una app hasta que el usuario los cierra
Es mejor usar los anuncios intersticiales durante pausas naturales en el flujo de ejecución de una app, como entre los niveles de un juego o justo después de completar una tarea.
Implementa anuncios intersticialesRecompensado
Anuncios que recompensan a los usuarios por mirar videos cortos y por interactuar con encuestas y anuncios con juegos
Los anuncios recompensados (o “basados en recompensas”) pueden ayudar a monetizar a los usuarios de videojuegos gratuitos.
Implementa anuncios recompensados
Otros temas de interés
Consulta los datos de métricas y estadísticas de los usuarios
Después de la inicialización, el SDK de anuncios para dispositivos móviles comienza a registrar automáticamente eventos de estadísticas y propiedades del usuario de tu app. Puedes ver estos datos sin agregar ningún código adicional a la app ni implementar anuncios. Aquí puedes ver estos datos de estadísticas:
En la tarjeta Métricas del usuario de tu cuenta de AdMob (en la Página principal o el panel Apps), puedes ver las métricas del usuario seleccionadas que derivan de los datos de estadísticas recopilados, como la duración promedio de la sesión, el ARPU y la retención.
En el panel de Analytics de Firebase console, puedes ver las estadísticas agregadas y los resúmenes de las métricas clave. Si agregas el SDK de Firebase para Google Analytics, también puedes marcar las conversiones de las campañas publicitarias y crear públicos personalizados en Firebase console.
Ten en cuenta que, para representar mejor las métricas
ARPU y
ARPPU, podrías
incluir datos de un evento personalizado de Analytics llamado
ecommerce_purchase
en el cálculo de ingresos de estas métricas
(más información).
Opcional: Usa más funciones de Google Analytics y Firebase.
Aprovecha más oportunidades y funciones para mejorar la monetización de apps y la participación de los usuarios:
Cómo agregar y usar el SDK de Firebase para Google Analytics
Implementa el registro de eventos personalizado en tu app.
Marca conversiones para las campañas de anuncios personalizados.
Incluye los datos del evento
ecommerce_purchase
en el cálculo de ingresos para las métricas ARPU y ARPPU.
Si quieres obtener más información, visita la guía para usar Google Analytics y Firebase con las apps de AdMob.
Usa otros productos de Firebase en tu app
Después de agregar el SDK de Firebase para Google Analytics, usa otros productos de Firebase a fin de optimizar los anuncios en tu app.
Remote Config te permite cambiar el comportamiento y el aspecto de tu app sin publicar una actualización y sin costo para una cantidad ilimitada de usuarios activos por día.
A/B Testing te permite probar cambios en la IU, las funciones o las campañas de participación de tu app para saber si influyen en tus métricas clave (como ingresos y retención) antes de implementar los cambios de forma general.