Inizializza l'SDK

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

Prima di iniziare

Per utilizzare GMA Next-Gen SDK, devi eseguire l'integrazione senza mediazione o utilizzare AdMob come piattaforma di mediazione. Le altre piattaforme di mediazione non sono compatibili con GMA Next-Gen SDK.

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 corrente dell'SDK Mobile Ads e includi il nuovo artefatto.

Dipendenze Gradle
Attuale

Kotlin

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

Groovy

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

Kotlin

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

Groovy

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

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

Gli adattatori di mediazione continuano a dipendere dall'SDK Mobile Ads attuale. 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 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.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"
}

Imposta i livelli API Android minimi e di compilazione

GMA Next-Gen SDK 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 GMA Next-Gen SDK

GMA Next-Gen SDK 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 la versione attuale e GMA Next-Gen SDK.

Imposta l'ID app AdMob

I seguenti esempi impostano l'ID app AdMob in GMA Next-Gen SDK e in quello corrente:

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>
GMA Next-Gen SDK

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 la corrente e GMA Next-Gen SDK:

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();
  }
}
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.
      }
      // 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();
  }
}