Esta guía está destinada a publicadores que deseen monetizar una app de C++ con AdMob, sin con Firebase. Si planeas incluir Firebase en tu app o si considera la página AdMob con Versión de Firebase de esta guía.
El primer paso para integrar el SDK de C++ de anuncios de Google para dispositivos móviles en una app es mostrar anuncios y obtener ingresos. Una vez que hayas integrado el SDK, puedes elegir un formato de anuncio, como intersticial o recompensado, y seguir los pasos implementarlo.
El SDK de C++ de anuncios de Google para dispositivos móviles incluye los SDK de iOS y Android de los anuncios de Google para dispositivos móviles,
y solo está disponible en esas plataformas. El SDK de C++ de anuncios
de Google para dispositivos móviles hace
Usa construcciones de Firebase C++ para admitir operaciones asíncronas, por lo que reside
en el espacio de nombres firebase::gma
.
Si es la primera vez que utilizas esta guía, te recomendamos que descárguela y sígala usando la prueba C++ de anuncios de Google para dispositivos móviles de la app.
Requisitos previos
Android
- Usa Android Studio 3.2 o una versión posterior
- Asegúrate de que el archivo de compilación de tu app use los siguientes valores:
- Una
minSdkVersion
de 16 o más - Una
compileSdkVersion
de 28 o más
- Una
iOS
- Usa Xcode 13 o una versión posterior
- Orientación a iOS 10.0 o versiones posteriores
Configura la app en tu cuenta de AdMob
Completa los siguientes pasos para registrar tu aplicación como una aplicación de AdMob:
Accede o regístrate en para una cuenta de AdMob.
Registra tu app con AdMob Con este paso, se crea una app de AdMob con un ID de app de AdMob único que se necesita más adelante en esta guía.
Instala el SDK de C++ 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 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 configuraciones de bibliotecas específicas de la plataforma.
Android
Recomendamos usar CMake, pero puedes encontrar instrucciones para ndk-build en nuestro
Primeros pasos con el SDK de Firebase C++ en general
Guía de
Vincula libfirebase_app.a
y libfirebase_gma.a
a tu app.
En el archivo
gradle.properties
de tu proyecto, especifica la ubicación de la 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 de tu módulo (nivel de app),
app/build.gradle
: Agrega el siguiente contenido, que incluye el elemento dependencia de biblioteca para el 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.
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 APP_DIRECTORY
pod init
En tu Podfile, agrega los Pods del SDK de C++ de anuncios de Google para dispositivos móviles, el SDK de Google User Messaging Platform y el SDK principal mínimo de Firebase (requerido por el SDK de GMA C++):
pod 'Firebase/CoreOnly' pod 'Google-Mobile-Ads-SDK' pod 'GoogleUserMessagingPlatform'
Instala los Pods y abre el archivo
.xcworkspace
en Xcode.pod install
open 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. sin ningún otro servicio de Firebase.
Configura el ID de app de AdMob de tu app
Android
Sigue el paso 3 de la página Configura tu aplicación según se describe en el SDK de anuncios para dispositivos móviles. Guía para Android y, luego, volveremos a esta página.
iOS
Sigue el paso Actualiza tu archivo Info.plist según se describe en el SDK de anuncios para dispositivos móviles Guía de iOS y, luego, regresa a esta página.
Cómo inicializar el SDK de anuncios de Google para dispositivos móviles
Antes de cargar anuncios, haz que tu app inicialice el SDK de C++ de anuncios de Google para dispositivos móviles. Para ello, haz lo siguiente:
Llama a firebase::gma::Initialize()
, que inicializa el SDK y completa un
firebase::Future
una vez que se complete la inicialización (o después de 30 segundos
tiempo de espera). Esto debe hacerse una sola vez, idealmente cuando se inicia la app.
Los anuncios se pueden cargar previamente con el SDK de C++ de anuncios de Google para dispositivos móviles o con los SDK de socios de mediación.
después de llamar a Initialize()
. Si necesitas obtener el consentimiento de los usuarios en el Espacio Económico Europeo (EEE), configura las marcas específicas de la solicitud que hagan falta (por ejemplo, tag_for_child_directed_treatment
o tag_for_under_age_of_consent
), o realiza la acción pertinente antes de cargar anuncios. Asegúrate de hacer esto invocando firebase::gma::SetRequestConfiguration()
antes de inicializar el SDK de C++ de anuncios de Google para dispositivos móviles. Para obtener más información, consulta nuestra
Segmentación.
Este es 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 un Future
para supervisar el estado de una llamada de método
Un Future
te permite determinar el estado de finalización de tus
llamadas de método asíncronas.
Por ejemplo, cuando tu app llama a firebase::gma::Initialize()
, se crea una nueva
firebase::Future
se crea y se muestra. 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 resultado.
AdapterInitializationStatus
Los métodos que muestran un Future
tienen un "último resultado" correspondiente que
que las apps pueden usar para recuperar el objeto Future
más reciente de una acción determinada. Para
Por ejemplo, firebase::gma::Initialize()
tiene un método correspondiente llamado
firebase::gma::InitializeLastResult()
, que muestra un Future
que indica tu app
que puedes 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 Future
. En
En algunos casos, la devolución de llamada se ejecutará en un subproceso diferente, así que asegúrate de que
tu código tiene seguridad en los subprocesos. Este fragmento de código usa un puntero 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.
}
}
Selecciona un formato de anuncio
Se importó el SDK de C++ de anuncios de Google para dispositivos móviles y ya puede implementar una anuncio. AdMob ofrece diferentes formatos de anuncios para que puedas elegir el que mejor se adapte a la experiencia del usuario de tu app.
Banner
Anuncios rectangulares que aparecen en la parte superior o inferior de la pantalla del dispositivo. Los anuncios 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 es la primera vez que utilizas dispositivos móviles publicidad, son un excelente punto de partida.
Implementa anuncios en forma de banner
Intersticial
Anuncios de pantalla completa que cubren la interfaz de una app hasta que el usuario los cierra. Es mejor usarlos 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 intersticiales
Recompensado
Anuncios que recompensan a los usuarios por mirar videos cortos y por interactuar con los anuncios y encuestas. Se utiliza para monetizar apps gratuitas.