Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Empieza a usar AdMob en tu proyecto de C++

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Esta guía de inicio rápido está destinada a editores y desarrolladores que deseen utilizar AdMob para monetizar una aplicación creada con Firebase.

Si aún no lo ha hecho, conozca todos los beneficios de usar AdMob, Firebase y Google Analytics juntos.

Si es la primera vez que consulta esta guía, le recomendamos que la descargue y la siga usando la aplicación de prueba del SDK de C++ de Google Mobile Ads .

Antes de que empieces

  • Si aún no tiene un proyecto de Firebase y una aplicación de Firebase, siga la guía de introducción de Firebase: Agregue Firebase a su proyecto de C++ .

  • Asegúrate de que Google Analytics esté habilitado en tu proyecto de Firebase:

    • Si está creando un nuevo proyecto de Firebase, habilite Google Analytics durante el flujo de trabajo de creación del proyecto.

    • Si tiene un proyecto de Firebase existente que no tiene habilitado Google Analytics, puede habilitar Google Analytics desde la pestaña Integraciones de su > Configuración del proyecto .

Paso 1: Configure su aplicación en su cuenta de AdMob

  1. Registre cada variante de plataforma de su aplicación como una aplicación de AdMob.

    1. Inicie sesión o regístrese para obtener una cuenta de AdMob.

    2. Registre cada variante de plataforma de su aplicación con AdMob . Este paso crea una aplicación de AdMob con un ID de aplicación de AdMob único que necesitará más adelante en esta guía.

    Se le pedirá que agregue el SDK de anuncios móviles a su aplicación. Encuentre instrucciones detalladas para esta tarea más adelante en esta guía.

  2. Vincule cada una de sus aplicaciones de AdMob a la aplicación de Firebase correspondiente.

    Este paso es opcional pero muy recomendable. Obtenga más información sobre los beneficios de habilitar las métricas de usuario y vincular sus aplicaciones de AdMob a Firebase.

    Para cada variante de plataforma, complete los dos pasos siguientes en el panel de aplicaciones de su cuenta de AdMob:

    1. Habilite Métricas de usuario para permitir que AdMob procese y muestre datos analíticos seleccionados en su cuenta de AdMob. También es una configuración obligatoria para vincular su aplicación de AdMob a Firebase.

    2. Vincule su aplicación de AdMob a su proyecto de Firebase existente y la aplicación de Firebase correspondiente.

      Asegúrese de ingresar el mismo nombre de paquete (Android) o ID de paquete (iOS) que ingresó para su aplicación Firebase. Busque el nombre del paquete o el ID del paquete de su aplicación Firebase en la tarjeta Sus aplicaciones de su > Configuración del proyecto .

Paso 2: agregue su ID de aplicación de AdMob a su aplicación

Androide

Agregue su ID de aplicación de AdMob al archivo AndroidManifest.xml de su aplicación agregando la etiqueta <meta-data> 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 su aplicación, agregue una clave GADApplicationIdentifier con un valor de cadena de su ID de aplicación de AdMob .

Puedes hacer este cambio programáticamente:

<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~1458002511 -->
<key>GADApplicationIdentifier</key>
<string>ADMOB_APP_ID</string>

O edítelo en el editor de listas de propiedades:

Editor de listas de propiedades

Paso 3: agregue el SDK de anuncios de Google para móviles

Dado que el SDK de C++ de Google Mobile Ads reside en el espacio de nombres firebase::gma , descargue el SDK de Firebase C++ y luego descomprímalo en un directorio de su elección.

El SDK de Firebase C++ no es específico de la plataforma, pero requiere configuraciones de biblioteca específicas de la plataforma.

Androide

  1. En el archivo gradle.properties de su proyecto, especifique la ubicación del SDK descomprimido:

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. Al archivo settings.gradle de su proyecto, agregue el siguiente contenido:

    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"
  3. A su archivo Gradle de módulo (a nivel de aplicación) (generalmente app/build.gradle ), agregue el siguiente contenido, que incluye la dependencia de la biblioteca para el SDK de C++ de Google Mobile Ads.

    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
    }
  4. Al archivo CMakeLists.txt de su proyecto, agregue el siguiente contenido.

    # 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}")
  5. Sincronice su aplicación para asegurarse de que todas las dependencias tengan las versiones necesarias.

¡Estás listo! Su aplicación de C++ está configurada para usar el SDK de C++ de Google Mobile Ads.

iOS

Los pasos de esta sección son un ejemplo de cómo agregar el SDK de C++ de Google Mobile Ads a su proyecto de iOS.

  1. Obtenga CocoaPods versión 1 o posterior ejecutando:

    sudo gem install cocoapods --pre
  2. Agregue el pod de Google Mobile Ads desde el SDK descomprimido.

    1. Cree un Podfile si aún no tiene uno:

      cd YOUR_APP_DIRECTORY
      pod init
    2. A su Podfile, agregue el pod para el SDK de C++ de Google Mobile Ads:

      pod 'Google-Mobile-Ads-SDK'
    3. Instale el pod, luego abra el archivo .xcworkspace en Xcode.

      pod install
      open YOUR_APP.xcworkspace
    4. Agregue los siguientes marcos del SDK de Firebase C++ al proyecto:

      • xcframeworks/firebase.xcframework
      • xcframeworks/firebase_gma.xcframework

¡Estás listo! Su aplicación de C++ está configurada para usar el SDK de C++ de Google Mobile Ads.

Paso 4: inicialice el SDK de anuncios de Google para móviles

Antes de cargar anuncios, inicialice el SDK de anuncios móviles llamando a firebase::gma::Initialize() .

Esta llamada devuelve un firebase::Future que se completa una vez que finaliza la inicialización (o después de un tiempo de espera de 30 segundos). Llame a este método solo una vez y lo antes posible, idealmente al iniciar la aplicación.

Aquí hay un ejemplo de cómo llamar a Initialize() :

Androide

// 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.
}

Use un Future para monitorear el estado de finalización de una llamada de método

A Future le proporciona una forma de determinar el estado de finalización de sus llamadas a métodos asincrónicos.

Por ejemplo, cuando tu aplicación llama a firebase::gma::Initialize() , se crea y se devuelve un nuevo firebase::Future . Luego, su aplicación puede sondear el status() del Future para determinar cuándo se completó la inicialización. Una vez completada, su aplicación puede invocar result() para obtener el AdapterInitializationStatus resultante.

Los métodos que devuelven un Future tienen un método de "último resultado" correspondiente que las aplicaciones pueden usar para recuperar el Future más reciente para una acción determinada. Por ejemplo, firebase::gma::Initialize() tiene un método correspondiente llamado firebase::gma::InitializeLastResult() , que devuelve un Future que su aplicación puede usar para verificar el estado de la última llamada a firebase::gma::Initialize() .

Si el estado de Future es completo y su código de error es firebase::gma::kAdErrorCodeNone , la operación se completó correctamente.

También puede registrar devoluciones de llamada para que se invoquen cuando se complete un Future . En algunos casos, la devolución de llamada se ejecutará en un subproceso diferente, así que asegúrese de que su código sea seguro para subprocesos. Este fragmento de código utiliza 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.
  }
}

Paso 5: elija un formato de anuncio para implementarlo en su aplicación

AdMob ofrece varios formatos de anuncios diferentes, por lo que puede elegir el formato que mejor se adapte a la experiencia del usuario de su aplicación. Haga clic en un botón de un formato de anuncio para ver las instrucciones de implementación detalladas en la documentación de AdMob.

Anuncios rectangulares que aparecen en la parte superior o inferior de la pantalla del dispositivo

Los anuncios publicitarios permanecen en la pantalla mientras los usuarios interactúan con la aplicación y pueden actualizarse automáticamente después de un cierto período de tiempo. Si es nuevo en la publicidad móvil, es un excelente lugar para comenzar.

Implementar anuncios publicitarios

intersticial

Anuncios a pantalla completa que cubren la interfaz de una aplicación hasta que el usuario la cierra

Los anuncios intersticiales se utilizan mejor en pausas naturales en el flujo de ejecución de una aplicación, como entre niveles de un juego o justo después de completar una tarea.

Implementar anuncios intersticiales

recompensado

Anuncios que recompensan a los usuarios por ver videos cortos e interactuar con encuestas y anuncios reproducibles

Los anuncios con recompensas (o "basados ​​en recompensas") pueden ayudar a monetizar a los usuarios de juegos gratuitos.

Implementar anuncios recompensados

Otros temas de interés

Ver métricas de usuario y datos analíticos

Después de su inicialización, el SDK de Mobile Ads comienza a registrar automáticamente eventos analíticos y propiedades de usuario desde su aplicación. Puede ver estos datos sin agregar ningún código adicional a su aplicación ni implementar ningún anuncio. Aquí es donde puede ver estos datos analíticos:

Tenga en cuenta que para representar mejor las métricas de ARPU y ARPPU , es posible que desee incluir datos de un evento personalizado de análisis llamado ecommerce_purchase en el cálculo de ingresos para estas métricas ( aprender cómo ).

(Opcional) Use más funciones de Google Analytics y Firebase

Aproveche más oportunidades y funciones para mejorar la monetización de la aplicación y la participación de los usuarios:

  • Agregar y usar el SDK de Firebase para Google Analytics

  • Use otros productos de Firebase en su aplicación

    Después de agregar el SDK de Firebase para Google Analytics, use otros productos de Firebase para optimizar los anuncios en su aplicación.

    • Remote Config le permite cambiar el comportamiento y la apariencia de su aplicación sin publicar una actualización de la aplicación, sin costo alguno, para usuarios activos diarios ilimitados.

    • Las pruebas A/B le brindan el poder de probar los cambios en la interfaz de usuario, las funciones o las campañas de participación de su aplicación para saber si tienen un impacto en sus métricas clave (como ingresos y retención) antes de implementar los cambios ampliamente.

Para comenzar, visite la guía para usar Google Analytics y Firebase con las aplicaciones de AdMob .