Inicializar o SDK

Esta página mostra as instruções para inicializar o SDK dos anúncios para dispositivos móveis do Google (beta).

Antes de começar

Para usar o SDK dos anúncios para dispositivos móveis do Google (Beta), 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 o SDK dos anúncios para dispositivos móveis do Google (Beta).

Configurar seu build para o SDK dos anúncios para dispositivos móveis do Google (Beta)

As seções a seguir mostram as etapas necessárias para configurar o SDK dos anúncios para dispositivos móveis do Google (beta).

Incluir a dependência do SDK dos anúncios para dispositivos móveis do Google (Beta)

O SDK dos anúncios para dispositivos móveis do Google (Beta) exige 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.7.0")
}

Groovy

dependencies {
  // ...
  implementation 'com.google.android.gms:play-services-ads:24.7.0'
}
SDK dos anúncios para dispositivos móveis do Google (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")
}

Groovy

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

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, o SDK dos anúncios para dispositivos móveis do Google (beta) inclui todas as classes necessárias para 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.all {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
}

Groovy

configurations {
  all {
    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 SDK dos anúncios para dispositivos móveis do Google (Beta) exige um nível mínimo de API do Android de 24 e um nível de API de compilação do 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 SDK dos anúncios para dispositivos móveis do Google (Beta)

O SDK dos anúncios para dispositivos móveis do Google (Beta) precisa ser inicializado antes de carregar anúncios. Essa é uma mudança em relação ao SDK 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 SDK atual e o SDK dos anúncios para dispositivos móveis do Google (Beta).

Definir o ID do app da AdMob

Os exemplos a seguir definem o ID do app da AdMob no SDK atual e no SDK dos anúncios para dispositivos móveis do Google (Beta):

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>
SDK dos anúncios para dispositivos móveis do Google (Beta)

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 Google Mobile Ads SDK (beta).
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 SDK atual e o SDK dos anúncios para dispositivos móveis do Google (Beta):

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();
  }
}
SDK dos anúncios para dispositivos móveis do Google (Beta)

Chame MobileAds.initialize() para inicializar o SDK dos anúncios para dispositivos móveis do Google (Beta). 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 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();
  }
}