Inizializza l'SDK

Questa pagina illustra le istruzioni per inizializzare l'SDK GMA di nuova generazione.

Prima di iniziare

Per utilizzare l'SDK GMA di nuova generazione, devi eseguire l'integrazione senza mediazione oppure utilizzare AdMob come piattaforma di mediazione. Le altre piattaforme di mediazione non sono compatibili con l'SDK GMA di nuova generazione.

Configura la build per l'SDK GMA di nuova generazione

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

Includi la dipendenza dell'SDK GMA Next Gen

L'SDK GMA Next Gen richiede una dipendenza Gradle diversa. Nel file di build a livello di app, rimuovi il riferimento alla dipendenza corrente dell'SDK Mobile Ads e includi il nuovo artefatto.

Dipendenze Gradle
Attuale

Kotlin

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

Trendy

dependencies {
  // ...
  implementation 'com.google.android.gms:play-services-ads:24.7.0'
}
SDK GMA di nuova generazione

Kotlin

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

Trendy

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

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

Gli adattatori di mediazione continuano a dipendere dall'SDK Mobile Ads attuale. Tuttavia, l'SDK GMA di nuova generazione include tutte le classi richieste dagli adattatori di mediazione. Per evitare errori di compilazione correlati a simboli duplicati, devi escludere l'SDK Mobile Ads attuale 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.all {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}

Trendy

configurations {
  all {
    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

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

Inizializza l'SDK GMA di nuova generazione

L'SDK GMA di nuova generazione richiede l'inizializzazione prima del caricamento degli annunci, una modifica rispetto all'SDK Mobile Ads attuale, in cui 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 l'SDK attuale e l'SDK GMA di nuova generazione.

Imposta l'ID app AdMob

Gli esempi seguenti impostano l'ID app AdMob nell'SDK attuale e in GMA Next Gen:

Attuale

L'integrazione richiede un tag <meta-data> con android:name="com.google.android.gms.ads.APPLICATION_ID" contenente l'ID app 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>
SDK GMA di nuova generazione

Fornisci l'ID app 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 l'SDK attuale e GMA Next Gen:

Attuale

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();
  }
}
SDK GMA di nuova generazione

Chiama MobileAds.initialize() per inizializzare l'SDK GMA di nuova generazione. 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.
      }
      // Other methods on MobileAds can now be called.
    }
  }
}

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.
                  });
              // Other methods on MobileAds can now be called.
            })
        .start();
  }
}