Inicializar o SDK

Nesta página, você encontra instruções para inicializar o GMA Next-Gen SDK.

Antes de começar

Para usar o GMA Next-Gen SDK, você precisa fazer a integração sem mediação ou usar a AdMob como plataforma de mediação. As outras plataformas de mediação não são compatíveis com GMA Next-Gen SDK.

Configurar o build para GMA Next-Gen SDK

As seções a seguir mostram as etapas necessárias para configurar o GMA Next-Gen SDK.

Incluir dependência GMA Next-Gen SDK

O GMA Next-Gen SDK requer uma dependência do Gradle diferente. No arquivo de build no nível do app, remova a referência à dependência atual do SDK dos anúncios para dispositivos móveis e inclua o novo artefato.

Dependências do Gradle
Atual

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'
}

Excluir módulos com.google.android.gms em integrações de mediação

Os adaptadores de mediação continuam dependendo do SDK dos anúncios para dispositivos móveis atual. No entanto, GMA Next-Gen SDK inclui todas as classes exigidas pelos adaptadores de mediação. Para evitar erros de compilação relacionados a símbolos duplicados, exclua o SDK Mobile Ads atual para que ele não seja extraído como uma dependência pelos adaptadores de mediação.

No arquivo de build no nível do app, exclua os módulos play-services-ads e play-services-ads-lite globalmente de todas as dependências.

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"
}

Definir os níveis mínimo e de compilação da API Android

O GMA Next-Gen SDK exige um nível mínimo da API Android de 24 e um nível de compilação da API Android de 34. Ajuste os valores de minSdk e compileSdk no arquivo de build no nível do app para 24 ou mais e 34 ou mais, respectivamente.

Inicializar o GMA Next-Gen SDK

O GMA Next-Gen SDK precisa ser inicializado antes de carregar anúncios, uma mudança em relação ao SDK de anúncios para dispositivos móveis atual, em que a inicialização é opcional, mas recomendada. Atualize seu código se você não estava inicializando o SDK antes de carregar anúncios.

Esta seção aborda as diferenças na implementação da inicialização do SDK entre o atual e o GMA Next-Gen SDK.

Definir o ID do app da AdMob

Os exemplos a seguir definem o ID do app da AdMob no GMA Next-Gen SDK e no atual:

Atual

A integração exige uma tag <meta-data> com android:name="com.google.android.gms.ads.APPLICATION_ID" contendo o ID do app da AdMob no arquivo AndroidManifest.xml do 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

Forneça o ID do app da AdMob de forma programática como parte da inicialização do 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 -> {});

Analisar as mudanças na implementação

Os exemplos a seguir inicializam o atual e GMA Next-Gen SDK:

Atual

Chame MobileAds.initialize() para inicializar o SDK dos anúncios para dispositivos móveis do Google. Recomendamos a inicialização em uma linha de execução em segundo plano para reduzir os ANRs.

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

Chame MobileAds.initialize() para inicializar GMA Next-Gen SDK. Isso precisa ser chamado em uma linha de execução em segundo plano. Caso contrário, pode ocorrer um erro "O app não está respondendo" (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();
  }
}