Inizia a utilizzare AdMob nel tuo progetto C++

Prendi in considerazione l'utilizzo degli SDK per iOS e Android di AdMob.


Questa guida rapida è rivolta a publisher e sviluppatori che vogliono utilizzare AdMob per monetizzare un'app creata con Firebase. Se non prevedi di includere Firebase nella tua app, consulta la guida AdMob autonoma invece.

Se non l'hai ancora fatto, scopri tutti i vantaggi dell'utilizzo combinato di AdMob, Firebase, e Google Analytics.

Se è la prima volta che segui questa guida, ti consigliamo di scaricare e utilizzare l'app di test dell'SDK Google Mobile Ads C++.

Prima di iniziare

  • Se non hai ancora un progetto Firebase e un'app Firebase, segui la guida introduttiva di Firebase: Aggiungere Firebase al progetto C++.

  • Assicurati che Google Analytics sia abilitato nel tuo progetto Firebase:

    • Se generi un nuovo progetto Firebase, abilita Google Analytics durante il flusso di lavoro di creazione del progetto.

    • Se hai un progetto Firebase esistente in cui non è abilitato Google Analytics, puoi abilitare Google Analytics dalla scheda Integrazioni di > Impostazioni progetto.

Passaggio 1: configura l'app nel tuo account AdMob

  1. Registra ogni variante della piattaforma della tua app come un'app AdMob.

    1. Accedi o registrati a un AdMob account.

    2. Registra ogni variante della piattaforma della tua app con AdMob. Questo passaggio crea un'app AdMob con un ID AdMob app univoco che ti servirà più avanti in questa guida.

    Ti verrà chiesto di aggiungere l'SDK Mobile Ads alla tua app. Troverai istruzioni dettagliate per questa attività più avanti in questa guida.

  2. Collega ogni app AdMob all'app Firebase corrispondente.

    Questo passaggio è facoltativo, ma vivamente consigliato. Scopri di più sui vantaggi dell'attivazione delle metriche utente e del collegamento delle app AdMob a Firebase.

    Per ogni variante della piattaforma, completa i due passaggi seguenti nella dashboard App del tuo account AdMob:

    1. Attiva Metriche utente per consentire a AdMob di elaborare e visualizzare i dati di analisi curati nel tuo AdMob account. È anche un'impostazione obbligatoria per collegare l'app AdMob a Firebase.

    2. Collega l'app AdMob al progetto Firebase esistente e all'app Firebase corrispondente.

      Assicurati di inserire lo stesso nome del pacchetto (Android) o ID pacchetto (iOS) inserito per l'app Firebase. Trova il nome del pacchetto o l'ID pacchetto dell'app Firebase nella scheda Le tue app di > Impostazioni progetto.

Passaggio 2: aggiungi l'ID app AdMob alla tua app

Android

Aggiungi l'ID app AdMob al file AndroidManifest.xml della tua app aggiungendo il tag <meta-data> come mostrato di seguito.

<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

Nel file Info.plist della tua app, aggiungi una chiave GADApplicationIdentifier con un valore stringa del tuo AdMob ID app.

Puoi apportare questa modifica a livello di programmazione:

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

Oppure, modificala nell'editor dell'elenco delle proprietà:

Editor elenco delle proprietà

Passaggio 3: aggiungi l'SDK Google Mobile Ads

Poiché l'SDK Google Mobile Ads C++ si trova nello spazio dei nomi firebase::gma, scarica l'SDK Firebase C++, e decomprimilo in una directory a tua scelta.

L'SDK Firebase C++ non è specifico per la piattaforma, ma richiede configurazioni di librerie specifiche per la piattaforma.

Android

  1. Nel file gradle.properties del progetto, specifica la posizione dell'SDK decompresso:

    systemProp.firebase_cpp_sdk.dir=FULL/PATH/TO/SDK
  2. Aggiungi i seguenti contenuti al file settings.gradle del progetto:

    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. Aggiungi i seguenti contenuti al file Gradle del modulo (a livello di app) (solitamente app/build.gradle), che include la dipendenza della libreria per l'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. Aggiungi i seguenti contenuti al file CMakeLists.txt del progetto.

    # 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. Sincronizza l'app per assicurarti che tutte le dipendenze abbiano le versioni necessarie.

Ecco fatto. L'app C++ è configurata per utilizzare l'SDK Google Mobile Ads C++.

iOS

I passaggi descritti in questa sezione sono un esempio di come aggiungere l'SDK Google Mobile Ads C++ al tuo progetto iOS.

  1. Scarica CocoaPods versione 1 o successive eseguendo:

    sudo gem install cocoapods --pre
  2. Aggiungi il pod Google Mobile Ads dall'SDK decompresso.

    1. Crea un Podfile se non ne hai già uno:

      cd YOUR_APP_DIRECTORY
      pod init
    2. Aggiungi il pod per l'SDK Google Mobile Ads C++ al Podfile:

      pod 'Google-Mobile-Ads-SDK'
    3. Installa il pod, quindi apri il file .xcworkspace in Xcode.

      pod install
      open YOUR_APP.xcworkspace
    4. Aggiungi i seguenti framework dall'SDK Firebase C++ al progetto:

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

Ecco fatto. L'app C++ è configurata per utilizzare l'SDK Google Mobile Ads C++.

Passaggio 4: inizializza l'SDK Google Mobile Ads

Prima di caricare gli annunci, inizializza l'SDK Mobile Ads chiamando firebase::gma::Initialize().

Questa chiamata restituisce un firebase::Future che viene completato al termine dell'inizializzazione (o dopo un timeout di 30 secondi). Chiama questo metodo una sola volta e il prima possibile, idealmente all'avvio dell'app.

Ecco un esempio di come chiamare 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.
}

Utilizzare un Future per monitorare lo stato di completamento di una chiamata al metodo

Un Future ti consente di determinare lo stato di completamento delle chiamate di metodi asincroni.

Ad esempio, quando la tua app chiama firebase::gma::Initialize(), viene creato e restituito un nuovo firebase::Future. La tua app può quindi eseguire il polling di status() di Future per determinare quando l'inizializzazione è stata completata. Una volta completata, l'app può richiamare result() per ottenere l'oggetto AdapterInitializationStatus risultante.

I metodi che restituiscono un Future hanno un metodo "ultimo risultato" corrispondente che le app possono utilizzare per recuperare l'oggetto Future più recente per una determinata azione. Ad esempio, firebase::gma::Initialize() ha un metodo corrispondente chiamato firebase::gma::InitializeLastResult(), che restituisce un Future che la tua app può utilizzare per controllare lo stato dell'ultima chiamata a firebase::gma::Initialize().

Se lo stato di Future è completo e il relativo codice di errore è firebase::gma::kAdErrorCodeNone, l'operazione è stata completata correttamente.

Puoi anche registrare i callback da richiamare al completamento di un Future. In alcuni casi, il callback verrà eseguito in un thread diverso, quindi assicurati che il codice sia thread-safe. Questo snippet di codice utilizza un puntatore di funzione per il callback:

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

Passaggio 5: scegli un formato dell'annuncio da implementare nella tua app

AdMob offre diversi formati di annunci, quindi puoi scegliere quello che meglio si adatta all'esperienza utente della tua app. Fai clic su un pulsante per un formato dell'annuncio per visualizzare istruzioni di implementazione dettagliate nella documentazione AdMob.

Annunci rettangolari che vengono visualizzati nella parte superiore o inferiore dello schermo del dispositivo

Gli annunci banner rimangono sullo schermo mentre gli utenti interagiscono con l'app e possono aggiornarsi automaticamente dopo un determinato periodo di tempo. Se non hai mai utilizzato la pubblicità mobile, sono un ottimo punto di partenza.

Implementa gli annunci banner

Interstitial

Annunci a schermo intero che coprono l'interfaccia di un'app finché non vengono chiusi dall'utente

Gli annunci interstitial sono più adatti per le pause naturali nel flusso di esecuzione di un'app, ad esempio tra i livelli di un gioco o subito dopo il completamento di un'attività.

Implementa gli annunci interstitial

Con premio

Annunci che premiano gli utenti per la visualizzazione di video brevi e l'interazione con annunci demo e sondaggi

Gli annunci con premio (o "basati su premio") possono aiutarti a monetizzare gli utenti free-to-play.

Implementa gli annunci con premio

Altri argomenti di interesse

Visualizzare le metriche utente e i dati di analisi

Dopo l'inizializzazione, l'SDK Mobile Ads inizia automaticamente a registrare gli eventi di analisi e le proprietà utente della tua app. Puoi visualizzare questi dati senza aggiungere codice aggiuntivo alla tua app o implementare annunci. Ecco dove puoi visualizzare questi dati di analisi:

Tieni presente che, per rappresentare meglio ARPU e ARPPU metriche, potresti voler includere i dati di un evento personalizzato di analisi chiamato ecommerce_purchase nel calcolo delle entrate per queste metriche (scopri come).

(Facoltativo) Utilizzare altre funzionalità di Google Analytics e Firebase

Sfrutta altre opportunità e funzionalità per migliorare la monetizzazione delle app e il coinvolgimento degli utenti: