Premiers pas avec AdMob dans votre projet C++

envisagez d'utiliser les SDK iOS et Android d'AdMob.


Ce guide de démarrage rapide s'adresse aux éditeurs et aux développeurs qui souhaitent utiliser AdMob pour monétiser une application créée avec Firebase. Si vous ne prévoyez pas d'inclure Firebase dans votre application, consultez plutôt le guide AdMob autonome.

Si ce n'est pas déjà fait, découvrez tous les avantages de l'utilisation conjointe de AdMob, Firebase, et Google Analytics.

Si vous consultez ce guide pour la première fois, nous vous recommandons de télécharger l'application de test du SDK Google Mobile Ads C++ et de la suivre.

Avant de commencer

  • Si vous n'avez pas encore de projet Firebase ni d'application Firebase, suivez le guide de démarrage Firebase : Ajouter Firebase à votre projet C++.

  • Assurez-vous que Google Analytics est activé dans votre projet Firebase :

    • Si vous créez un projet Firebase, activez Google Analytics lors du processus de création du projet.

    • Si vous disposez d'un projet Firebase existant dans lequel Google Analytics n'est pas activé, vous pouvez l'activer depuis l'onglet Intégrations de vos > Paramètres du projet.Google Analytics

Étape 1 : Configurer votre application dans votre compte AdMob

  1. Enregistrez chaque variante de plate-forme de votre application en tant qu'AdMob application.

    1. Connectez-vous ou créez un AdMob compte.

    2. Enregistrez chaque variante de plate-forme de votre application auprès de AdMob. Cette étape crée une application AdMob avec un AdMob ID d'application unique dont vous aurez besoin plus loin dans ce guide.

    Vous serez invité à ajouter le Mobile Ads SDK à votre application. Vous trouverez des instructions détaillées pour cette tâche plus loin dans ce guide.

  2. Associez chacune de vos applications AdMob à l'application Firebase correspondante.

    Cette étape est facultative, mais fortement recommandée. Découvrez les avantages de l'activation des métriques utilisateur et de l'association de vos applications AdMob à Firebase.

    Pour chaque variante de plate-forme, effectuez les deux étapes suivantes dans le tableau de bord Applications de votre compte AdMob :

    1. Activez les métriques utilisateur pour permettre à AdMob de traiter et d'afficher des données analytiques sélectionnées dans votre AdMob compte. Il s'agit également d'un paramètre obligatoire pour que vous puissiez associer votre AdMob application à Firebase.

    2. Associez votre application AdMob AdMob à votre projet Firebase existant et à l'application Firebase correspondante.

      Assurez-vous de saisir le même nom de package (Android) ou ID de bundle (iOS) que celui que vous avez saisi pour votre application Firebase. Vous trouverez le nom de package ou l'ID de bundle de votre application Firebase dans la fiche Vos applications de vos > Paramètres du projet.

Étape 2 : Ajouter votre ID d'application AdMob à votre application

Android

Ajoutez votre AdMob ID d'application au fichier AndroidManifest.xml de votre application en ajoutant le tag <meta-data> comme indiqué ci-dessous.

<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

Dans le fichier Info.plist de votre application, ajoutez une clé GADApplicationIdentifier avec une valeur de chaîne correspondant à votre AdMob ID d'application.

Vous pouvez effectuer cette modification par programmation :

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

Vous pouvez également la modifier dans l'éditeur de liste de propriétés :

Éditeur de liste de propriétés

Étape 3 : Ajouter le SDK Google Mobile Ads

Étant donné que le SDK Google Mobile Ads C++ réside 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

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

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. Ajoutez le contenu suivant au fichier settings.gradle de votre projet :

    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. Ajoutez le contenu suivant au fichier Gradle de votre module (au niveau de l'application), généralement app/build.gradle, qui inclut la dépendance de la bibliothèque 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. Ajoutez le contenu suivant au fichier CMakeLists.txt de votre projet.

    # 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.

C’est terminé ! Votre application C++ est configurée pour utiliser le SDK Google Mobile Ads C++.

iOS

Les étapes de cette section montrent comment ajouter le SDK Google Mobile Ads C++ à votre projet iOS.

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

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

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

      cd YOUR_APP_DIRECTORY
      pod init
    2. Ajoutez le pod pour le SDK Google Mobile Ads C++ à votre fichier Podfile :

      pod 'Google-Mobile-Ads-SDK'
    3. Installez le pod, puis ouvrez le fichier .xcworkspace dans Xcode.

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

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

C’est terminé ! Votre application C++ est configurée pour utiliser le SDK Google Mobile Ads C++.

Étape 4 : Initialiser le SDK Google Mobile Ads

Avant de charger des annonces, initialisez le Mobile Ads SDK en appelant firebase::gma::Initialize().

Cet appel renvoie un firebase::Future qui se termine une fois l'initialisation terminée (ou après un délai de 30 secondes). N'appelez cette méthode qu'une seule fois et le plus tôt possible, idéalement au lancement de l'application.

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'achèvement d'un appel de méthode

Un Future vous permet de déterminer l'état d'achèvement de vos appels de méthode asynchrones.

Par exemple, lorsque votre application appelle firebase::gma::Initialize(), un nouveau firebase::Future est créé et renvoyé. Votre application peut ensuite interroger le status() du 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 AdapterInitializationStatus résultant.

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

Si l'état du Future est terminé et que son code d'erreur est firebase::gma::kAdErrorCodeNone, l'opération s'est terminée correctement.

Vous pouvez également enregistrer des rappels à appeler lorsqu'un Future est terminé. Dans certains cas, le rappel s'exécute dans un thread différent. Assurez-vous donc que votre code est thread-safe. Cet extrait de code utilise un pointeur de fonction pour le 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.
  }
}

Étape 5 : Choisir un format d'annonce à implémenter dans votre application

AdMob propose différents formats d'annonces. Vous pouvez donc choisir celui qui correspond le mieux à l'expérience utilisateur de votre application. Cliquez sur un bouton pour un format d'annonce afin d' afficher des instructions d'implémentation détaillées dans la AdMob documentation.

Annonces rectangulaires qui s'affichent en haut ou en bas de l'écran de l'appareil

Les bannières restent à l'écran lorsque les utilisateurs interagissent avec l'application et peuvent s'actualiser automatiquement au bout d'un certain temps. Si vous débutez dans la publicité mobile, c'est un excellent point de départ.

Implémenter des bannières

Interstitiel

Annonces plein écran qui recouvrent l'interface d'une application jusqu'à ce que l'utilisateur les ferme

Les annonces interstitielles sont plus efficaces lorsqu'elles sont utilisées lors de pauses naturelles dans l'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 pour avoir regardé de courtes vidéos et interagi avec des annonces et des enquêtes jouables

Les annonces avec récompense (ou "basées sur une récompense") peuvent vous aider à monétiser les utilisateurs qui jouent sans frais.

Implémenter des annonces avec récompense

Autres sujets d'intérêt

Afficher les métriques utilisateur et les données analytiques

Après son initialisation, le Mobile Ads SDK commence automatiquement à enregistrer les événements Analytics et les propriétés utilisateur de votre application. Vous pouvez afficher ces données sans ajouter de code supplémentaire à votre application ni implémenter d'annonces. Voici où vous pouvez consulter ces données analytiques :

Notez que, pour mieux représenter ARPU et ARPPU métriques, vous pouvez inclure les données d'un événement personnalisé Analytics appelé ecommerce_purchase dans le calcul des revenus pour ces métriques (découvrez comment procéder).

(Facultatif) Utiliser davantage de fonctionnalités de Google Analytics et de Firebase

Profitez d'autres opportunités et fonctionnalités pour améliorer la monétisation des applications et l'engagement des utilisateurs :