Esegui la migrazione all'SDK GMA Next-Gen

Questa pagina contiene le istruzioni per inizializzare GMA Next-Gen SDK.

Prima di iniziare

Questa guida è destinata agli editori e alle piattaforme di terze parti che integrano GMA Next-Gen SDK direttamente.

Se ti connetti ad AdMob tramite una piattaforma di mediazione di terze parti che supporta l'asta di partner, controlla la tabella seguente per verificare la compatibilità della piattaforma con GMA Next-Gen SDK.

Piattaforma di mediazione Compatibile con GMA Next-Gen SDK
AdMost
AppLovin MAX
Chartboost Mediation
DT Fairbid
Gravite
Nimbus
TopOn
TradPlus VisiM
Unity LevelPlay

Se vuoi utilizzare una piattaforma di mediazione non compatibile con GMA Next-Gen SDK, contatta la piattaforma di mediazione per richiedere assistenza.

Configura la build per GMA Next-Gen SDK

Le sezioni seguenti mostrano i passaggi necessari per configurare GMA Next-Gen SDK.

Includi la dipendenza GMA Next-Gen SDK

GMA Next-Gen SDK richiede una dipendenza Gradle diversa. Nel file di build a livello di app, rimuovi il riferimento alla dipendenza Google Mobile Ads SDK (Legacy) e includi il nuovo artefatto.

Dipendenze Gradle
Google Mobile Ads SDK (Legacy)

Kotlin

dependencies {
  // ...
  implementation("com.google.android.gms:play-services-ads:25.5.0")
}

Groovy

dependencies {
  // ...
  implementation 'com.google.android.gms:play-services-ads:25.5.0'
}
GMA Next-Gen SDK

Kotlin

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation("com.google.android.gms:play-services-ads:25.5.0")
  implementation("com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.4.0")
}

Groovy

dependencies {
  // ...
  // Comment out/remove play-services-ads.
  // implementation 'com.google.android.gms:play-services-ads:25.5.0'
  implementation 'com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk:1.4.0'
}

Escludere i moduli com.google.android.gms nelle integrazioni di mediazione

Gli adattatori di mediazione continuano a dipendere da Google Mobile Ads SDK (Legacy). Tuttavia, GMA Next-Gen SDK include tutte le classi richieste dagli adattatori di mediazione. Per evitare errori di compilazione correlati a simboli duplicati, devi escludere Google Mobile Ads SDK (Legacy) dall'inclusione come dipendenza da parte degli adattatori di mediazione.

Nel file di build a livello di app, escludi i moduli play-services-ads e play-services-ads-lite a livello globale da tutte le dipendenze.

Kotlin

configurations.configureEach {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}

Groovy

configurations.configureEach {
    exclude group: "com.google.android.gms", module: "play-services-ads"
    exclude group: "com.google.android.gms", module: "play-services-ads-lite"
}

Impostare i livelli API Android minimi e di compilazione

GMA Next-Gen SDK richiede un livello API Android minimo pari a 24 e un livello API Android di compilazione pari a 34. Modifica i valori di minSdk e compileSdk nel file di build a livello di app impostandoli rispettivamente su 24 o versioni successive e 34 o versioni successive.

Inizializza GMA Next-Gen SDK

GMA Next-Gen SDK richiede l'inizializzazione prima del caricamento degli annunci, una modifica rispetto a Google Mobile Ads SDK (Legacy), dove l'inizializzazione è facoltativa, ma consigliata. Aggiorna il codice se in precedenza non inizializzavi l'SDK prima di caricare gli annunci.

Questa sezione illustra le differenze nell'implementazione dell'inizializzazione dell'SDK tra Google Mobile Ads SDK (Legacy) e GMA Next-Gen SDK.

Imposta l'ID app monetizzata con AdMob

I seguenti esempi impostano l'ID app monetizzata con AdMob in Google Mobile Ads SDK (Legacy) e GMA Next-Gen SDK:

Google Mobile Ads SDK (Legacy)

L'integrazione richiede un tag <meta-data> con android:name="com.google.android.gms.ads.APPLICATION_ID" contenente l'ID della tua app monetizzata con AdMob nel file AndroidManifest.xml dell'app.

<manifest>
  <application>
    <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
    <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="SAMPLE_APP_ID"/>
  </application>
</manifest>
GMA Next-Gen SDK

Fornisci l'ID dell'app monetizzata con AdMob in modo programmatico nell'ambito dell'inizializzazione dell'SDK.

Kotlin

// Initialize the Google Mobile Ads SDK.
val initConfig = InitializationConfig.Builder("SAMPLE_APP_ID").build()
MobileAds.initialize(this@MainActivity, initConfig) {}

Java

// Initialize GMA Next-Gen SDK.
InitializationConfig initConfig =
    new InitializationConfig.Builder("SAMPLE_APP_ID").build();
MobileAds.initialize(this, initConfig, initializationStatus -> {});

Rivedere le modifiche all'implementazione

Gli esempi seguenti inizializzano Google Mobile Ads SDK (Legacy) e GMA Next-Gen SDK:

Google Mobile Ads SDK (Legacy)

Chiama MobileAds.initialize() per inizializzare l'SDK Google Mobile Ads. Per ridurre gli errori ANR, è consigliabile l'inizializzazione su un thread in background.

Kotlin

import com.google.android.gms.ads.MobileAds
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val backgroundScope = CoroutineScope(Dispatchers.IO)
    backgroundScope.launch {
      // Initialize the Google Mobile Ads SDK on a background thread.
      MobileAds.initialize(this@MainActivity) {}
    }
  }
}

Java

import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

public class MainActivity extends AppCompatActivity {
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    new Thread(
            () -> {
              // Initialize the Google Mobile Ads SDK on a background thread.
              MobileAds.initialize(this, initializationStatus -> {});
            })
        .start();
  }
}
GMA Next-Gen SDK

Chiama MobileAds.initialize() per inizializzare GMA Next-Gen SDK. Questo metodo deve essere chiamato su un thread in background. In caso contrario, potrebbe verificarsi un errore "L'applicazione non risponde" (ANR).

Kotlin

import com.google.android.libraries.ads.mobile.sdk.MobileAds
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val backgroundScope = CoroutineScope(Dispatchers.IO)
    backgroundScope.launch {
      // Initialize GMA Next-Gen SDK on a background thread.
      MobileAds.initialize(
        this@MainActivity,
        // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
        InitializationConfig.Builder("SAMPLE_APP_ID").build()
      ) {
        // Adapter initialization is complete.
      }
      // SDK initialization is complete. If you don't want to wait for bidding adapters to finish
      // initializing, start loading ads now.
    }
  }
}

Java

import com.google.android.libraries.ads.mobile.sdk.MobileAds;
import com.google.android.libraries.ads.mobile.sdk.initialization.InitializationConfig;

public class MainActivity extends AppCompatActivity {
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    new Thread(
            () -> {
              // Initialize GMA Next-Gen SDK on a background thread.
              MobileAds.initialize(
                  this,
                  // Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
                  new InitializationConfig.Builder("SAMPLE_APP_ID")
                      .build(),
                  initializationStatus -> {
                    // Adapter initialization is complete.
                  });
              // SDK initialization is complete. If you don't want to wait for bidding adapters to
              // finish initializing, start loading ads now.
            })
        .start();
  }
}