Commencer


Ce guide s'adresse aux éditeurs qui souhaitent monétiser une application C++ avec AdMob sans à l'aide de Firebase. Si vous prévoyez d'intégrer Firebase à votre application vous envisagez d'en bénéficier. Consultez le guide AdMob Firebase .

L'intégration du SDK C++ Google Mobile Ads dans une application est la première étape vers diffuser des annonces et générer des revenus. Une fois le SDK intégré, vous pouvez choisissez un format d'annonce (interstitielle ou annonce avec récompense, par exemple) et suivez les étapes le mettre en œuvre.

Le SDK Google Mobile Ads C++ encapsule les SDK Google Mobile Ads pour iOS et Android, et n'est disponible que sur ces plates-formes. Le SDK Google Mobile Ads C++ l'utilisation des constructions C++ Firebase pour permettre les opérations asynchrones. Il se trouve donc dans l'espace de noms firebase::gma.

Si vous consultez ce guide pour la première fois, nous vous recommandons de téléchargez et suivez l'atelier en utilisant l'outil de test C++ Google Mobile Ads l'application Nest.

Prérequis

Android

  • Utiliser Android Studio 3.2 ou version ultérieure
  • Assurez-vous que le fichier de compilation de votre application utilise les valeurs suivantes:
    • minSdkVersion égal ou supérieur à 16
    • compileSdkVersion supérieur ou égal à 28

iOS

  • Utiliser Xcode 13 ou une version ultérieure
  • Cibler iOS 10.0 ou version ultérieure

Configurer votre application dans votre compte AdMob

Pour enregistrer votre application en tant qu'application AdMob, procédez comme suit:

  1. Connectez-vous à ou inscrivez-vous pour un compte AdMob.

  2. Enregistrer votre application auprès de AdMob Cette étape permet de créer application avec un ID d'application AdMob unique nécessaire plus loin dans ce guide.

Installer le SDK C++ Google Mobile Ads

Étant donné que le SDK C++ Google Mobile Ads se trouve dans l'espace de noms firebase::gma, téléchargez le SDK Firebase C++, puis décompressez-le dans le répertoire de votre choix.

Le SDK Firebase C++ n'est pas spécifique à une plate-forme, mais il nécessite des configurations de bibliothèque spécifiques à la plate-forme.

Android

Nous vous recommandons d'utiliser CMake, mais vous trouverez des instructions pour ndk-build dans notre général SDK Firebase C++ : premiers pas Guide des associer libfirebase_app.a et libfirebase_gma.a à votre application.

  1. Dans le fichier gradle.properties de votre projet, spécifiez l'emplacement SDK décompressé:

    systemProp.firebase_cpp_sdk.dir=FULL_PATH_TO_SDK
    
  2. Dans le fichier settings.gradle de votre projet, ajoutez le contenu suivant:

    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. Dans le fichier Gradle de votre module (au niveau de l'application), généralement app/build.gradle : ajoutez le contenu suivant, y compris le pour le SDK Google Mobile Ads C++.

    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. Dans le fichier CMakeLists.txt de votre projet, ajoutez le contenu suivant.

    # 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. Synchronisez votre application pour vous assurer que toutes les dépendances disposent des versions nécessaires.

iOS

Les étapes de cette section montrent comment ajouter la fonctionnalité SDK C++ à votre projet iOS.

  1. Obtenez CocoaPods version 1 ou ultérieure en exécutant la commande suivante:

    sudo gem install cocoapods --pre
    
  2. Ajoutez le pod Google Mobile Ads à partir du SDK décompressé.

    1. Créez un Podfile si vous n'en avez pas déjà un:

      cd APP_DIRECTORY
      pod init
      
    2. Dans votre fichier Podfile, ajoutez les pods du SDK Google Mobile Ads C++, SDK Google User Messaging Platform et SDK principal Firebase minimal (requis par le SDK GMA C++):

      pod 'Firebase/CoreOnly'
      pod 'Google-Mobile-Ads-SDK'
      pod 'GoogleUserMessagingPlatform'
      
    3. Installez les pods, puis ouvrez le fichier .xcworkspace dans Xcode.

      pod install
      open APP.xcworkspace
      
    4. Ajoutez les frameworks suivants à partir du SDK Firebase C++ au projet:

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

Vous avez terminé. Votre application C++ est configurée pour utiliser le SDK Google Mobile Ads pour C++ sans aucun autre service Firebase.

Configurer l'ID AdMob de votre application

Android

Suivez l'étape 3 de la section Configurer votre application comme décrit dans le SDK Mobile Ads. Guide Android puis revenez sur cette page.

iOS

Suivez l'étape Mettre à jour votre fichier Info.plist conformément aux instructions du SDK Mobile Ads. guide iOS, puis revenez à cette page.

Initialiser le SDK Google Mobile Ads

Avant de charger les annonces, faites en sorte que votre application initialise le SDK C++ Google Mobile Ads en appeler firebase::gma::Initialize(), qui initialise le SDK et termine une firebase::Future une fois l'initialisation terminée (ou après un délai de 30 secondes le délai avant expiration). Cette opération ne doit être effectuée qu'une seule fois, idéalement au lancement de l'application.

Les annonces peuvent être préchargées par le SDK C++ Google Mobile Ads ou les SDK des partenaires de médiation. lors de l'appel de Initialize(). Si vous devez obtenir le consentement des utilisateurs des Dans l'Espace économique européen (EEE), définissez des indicateurs spécifiques à une demande (comme tag_for_child_directed_treatment ou tag_for_under_age_of_consent) ou d'effectuer toute autre action avant de charger les annonces, assurez-vous de le faire en appelant firebase::gma::SetRequestConfiguration() avant d'initialiser SDK Ads C++. Pour en savoir plus, consultez notre Guide de ciblage.

Voici un exemple d'appel de 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.
}

Utiliser un Future pour surveiller l'état d'avancement d'un appel de méthode

Un Future vous permet de déterminer l'état d'avancement de votre de méthodes asynchrones.

Par exemple, lorsque votre application appelle firebase::gma::Initialize(), un nouveau firebase::Future est créé et renvoyé. Votre application peut alors interroger status() de Future pour déterminer quand l'initialisation est terminée. Une fois l'opération terminée, votre application peut appeler result() pour obtenir le résultat AdapterInitializationStatus

Les méthodes qui renvoient un Future ont un "dernier résultat" correspondant. méthode qui applis peuvent utiliser pour récupérer les Future les plus récents pour une action donnée. Pour Par exemple, firebase::gma::Initialize() possède une méthode correspondante appelée firebase::gma::InitializeLastResult(), qui renvoie un Future que votre application permet de vérifier l'état du dernier appel à firebase::gma::Initialize().

Si l'état de Future est complet et que son code d'erreur est firebase::gma::kAdErrorCodeNone, l'opération est terminée avec succès.

Vous pouvez également enregistrer des rappels à appeler lorsqu'une opération Future est terminée. Dans Dans certains cas, le rappel s'exécutera dans un thread différent. votre code est thread-safe. Cet extrait de code utilise un pointeur de fonction pour rappel:

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

Sélectionnez un format d'annonce

Le SDK C++ Google Mobile Ads est maintenant importé et vous êtes prêt à implémenter une annonce. AdMob propose de nombreux formats d'annonces différents. qui correspond le mieux à l'expérience utilisateur de votre application.

Annonces rectangulaires qui s'affichent en haut ou en bas de l'écran de l'appareil. Les bannières restent affichées à l'écran lorsque les utilisateurs interagissent avec l'application. automatiquement après un certain temps. Si vous faites vos premiers pas sur mobile publicitaires, c'est un bon point de départ.

Implémenter des bannières

Interstitiel

Annonces en plein écran qui recouvrent l'interface d'une application jusqu'à ce qu'elle soit fermée par l'utilisateur. Elles sont mieux utilisées lors de pauses naturelles dans le flux d'exécution d'une application, par exemple entre les niveaux d'un jeu ou juste après la fin d'une tâche.

Implémenter des annonces interstitielles

Avec récompense

Annonces qui récompensent les utilisateurs qui regardent des vidéos courtes et interagissent avec des jeux jouables des annonces et des enquêtes. Permet de monétiser les applications sans frais.

Implémenter des annonces avec récompense