Empieza a utilizar AdMob en tu proyecto de C++

Esta guía de inicio rápido está dirigida a editores y desarrolladores que desean utilizar AdMob para monetizar una aplicación creada con Firebase. Si no planeas incluir Firebase en tu aplicación, visita la guía independiente de AdMob .

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

Si es la primera vez que lees esta guía, te recomendamos que descargues y sigas la aplicación de prueba del SDK de C++ de anuncios móviles de Google .

Antes de que empieces

  • Si aún no tienes un proyecto de Firebase y una aplicación de Firebase, sigue la guía de introducción de Firebase: Agrega Firebase a tu proyecto de C++ .

  • Asegúrese de que Google Analytics esté habilitado en su proyecto de Firebase:

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

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

Paso 1: configura tu aplicación en tu cuenta de AdMob

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

    1. Inicia sesión o regístrate 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ás 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. Vincula cada una de tus aplicaciones de AdMob a 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 de usuario y vincular tus 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 las 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 tu aplicación de AdMob a Firebase.

    2. Vincula tu aplicación de AdMob a tu proyecto de Firebase existente y a 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: Añade el ID de tu aplicación de AdMob a tu aplicación

Androide

Agregue el ID de su 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 .

Puede realizar este cambio mediante programación:

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

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

Editor de lista de propiedades

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

Dado que el SDK de C++ de anuncios de Google para dispositivos móviles reside en el espacio de nombres firebase::gma , descargue el SDK de C++ de Firebase y luego descomprímalo en el directorio que elija.

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. Al archivo Gradle de su módulo (nivel de aplicación) (normalmente 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 C++ está configurada para utilizar el SDK de C++ de anuncios de Google para móviles.

iOS

Los pasos de esta sección son un ejemplo de cómo agregar el SDK de C++ de anuncios de Google para móviles a su proyecto de iOS.

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

    sudo gem install cocoapods --pre
  2. Agregue el pod de anuncios de Google para móviles desde el SDK descomprimido.

    1. Crea un Podfile si aún no tienes uno:

      cd YOUR_APP_DIRECTORY
      pod init
    2. A su Podfile, agregue el pod para el SDK de C++ de anuncios de Google para móviles:

      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 C++ está configurada para utilizar el SDK de C++ de anuncios de Google para móviles.

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

Antes de cargar anuncios, inicialice el SDK de anuncios móviles llamando 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 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.
}

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

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

Por ejemplo, cuando tu aplicación llama 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 completado, 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 tu aplicación puede usar para verificar el estado de la última llamada a firebase::gma::Initialize() .

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

También puede registrar devoluciones de llamada que se invocarán 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 implementar en su aplicación

AdMob ofrece varios formatos de anuncios diferentes, por lo que puedes elegir el formato que mejor se adapte a la experiencia del usuario de tu aplicación. Haga clic en un botón para elegir un formato de anuncio y ver instrucciones detalladas de implementación 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, son un excelente lugar para comenzar.

Implementar anuncios publicitarios

intersticial

Anuncios de 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 anuncios y encuestas reproducibles.

Los anuncios bonificados (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 anuncios móviles 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 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 ( obtenga más información ).

(Opcional) Utilice 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:

  • Agregue y use el SDK de Firebase para Google Analytics

    Para obtener más información, visita la guía para usar Google Analytics y Firebase con aplicaciones de AdMob .

  • Utilice 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 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.