Inizializza l'SDK

Questa pagina illustra le istruzioni per inizializzare l'SDK Google Mobile Ads (beta).

Prima di iniziare

Per utilizzare l'SDK Google Mobile Ads (beta), devi eseguire l'integrazione senza mediazione o utilizzare AdMob come piattaforma di mediazione. Le altre piattaforme di mediazione non sono compatibili con l'SDK Google Mobile Ads (beta).

Configurare la build per l'SDK Google Mobile Ads (beta)

Le sezioni seguenti mostrano i passaggi necessari per configurare l'SDK Google Mobile Ads (beta).

Includi la dipendenza dell'SDK Google Mobile Ads (beta)

L'SDK Google Mobile Ads (beta) 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 Google Mobile Ads (beta)

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 Google Mobile Ads (beta) 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 Google Mobile Ads (beta) 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.

Inizializzare l'SDK Google Mobile Ads (beta)

L'SDK Google Mobile Ads (beta) 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 Google Mobile Ads (beta) e quello attuale.

Imposta l'ID app AdMob

I seguenti esempi impostano l'ID app AdMob nell'SDK Google Mobile Ads (beta) e in quello attuale:

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 Google Mobile Ads (beta)

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 Google Mobile Ads SDK (beta).
InitializationConfig initConfig =
    new InitializationConfig.Builder("SAMPLE_APP_ID").build();
MobileAds.initialize(this, initConfig, initializationStatus -> {});

Rivedere le modifiche all'implementazione

I seguenti esempi inizializzano l'SDK Google Mobile Ads (beta) e quello attuale:

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 Google Mobile Ads (beta)

Chiama MobileAds.initialize() per inizializzare l'SDK Google Mobile Ads (beta). 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 Google Mobile Ads SDK (beta) 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 Google Mobile Ads SDK (beta) 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();
  }
}