Inicializa el SDK

En esta página, se incluyen las instrucciones para inicializar el SDK de anuncios de Google para dispositivos móviles (beta).

Antes de comenzar

Para usar el SDK de anuncios de Google Mobile (beta), debes realizar la integración sin mediación o usar AdMob como plataforma de mediación. Las otras plataformas de mediación no son compatibles con el SDK de anuncios de Google para dispositivos móviles (beta).

Configura tu compilación para el SDK de anuncios de Google para dispositivos móviles (beta)

En las siguientes secciones, se muestran los pasos necesarios para configurar el SDK de anuncios de Google para dispositivos móviles (beta).

Incluye la dependencia del SDK de anuncios de Google para dispositivos móviles (beta)

El SDK de anuncios de Google para dispositivos móviles (beta) requiere una dependencia de Gradle diferente. En el archivo de compilación a nivel de la app, quita la referencia a la dependencia actual del SDK de anuncios para dispositivos móviles y, luego, incluye el nuevo artefacto.

Dependencias de Gradle
Actual

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 de anuncios de Google para dispositivos móviles (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'
}

Excluye los módulos de com.google.android.gms en las integraciones de mediación

Los adaptadores de mediación siguen dependiendo del SDK de anuncios para dispositivos móviles actual. Sin embargo, el SDK de anuncios de Google para dispositivos móviles (beta) incluye todas las clases que requieren los adaptadores de mediación. Para evitar errores de compilación relacionados con símbolos duplicados, debes excluir el SDK de anuncios para dispositivos móviles actual para que los adaptadores de mediación no lo extraigan como dependencia.

En el archivo de compilación a nivel de la app, excluye los módulos play-services-ads y play-services-ads-lite de forma global de todas las dependencias.

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

Cómo configurar los niveles de API de Android mínimos y de compilación

El SDK de anuncios de Google para dispositivos móviles (beta) requiere un nivel de API de Android mínimo de 24 y un nivel de API de Android de compilación de 34. Ajusta los valores de minSdk y compileSdk en el archivo de compilación a nivel de la app a 24 o más y 34 o más, respectivamente.

Inicializa el SDK de anuncios de Google para dispositivos móviles (beta)

El SDK de anuncios de Google para dispositivos móviles (beta) requiere inicialización antes de cargar anuncios, lo que representa un cambio con respecto al SDK de anuncios para dispositivos móviles actual, en el que la inicialización es opcional, pero recomendada. Actualiza tu código si no inicializabas el SDK antes de cargar anuncios.

En esta sección, se explican las diferencias en la implementación de la inicialización del SDK entre el SDK actual y el SDK de anuncios de Google para dispositivos móviles (beta).

Cómo establecer el ID de la aplicación de AdMob

En los siguientes ejemplos, se establece el ID de la app de AdMob en el SDK actual y en el SDK de anuncios de Google para dispositivos móviles (beta):

Actual

La integración requiere una etiqueta <meta-data> con android:name="com.google.android.gms.ads.APPLICATION_ID" que contenga el ID de tu aplicación de AdMob en el archivo AndroidManifest.xml de tu aplicación.

<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 de anuncios de Google para dispositivos móviles (beta)

Proporciona tu ID de aplicación de AdMob de forma programática como parte de la inicialización del 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 -> {});

Revisa los cambios en la implementación

En los siguientes ejemplos, se inicializan el SDK actual y el SDK de anuncios de Google para dispositivos móviles (beta):

Actual

Llama a MobileAds.initialize() para inicializar el SDK de anuncios de Google para dispositivos móviles. Se recomienda la inicialización en un subproceso en segundo plano para reducir los errores ANR.

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 de anuncios de Google para dispositivos móviles (beta)

Llama a MobileAds.initialize() para inicializar el SDK de anuncios de Google para dispositivos móviles (beta). Se debe llamar a este método en un subproceso en segundo plano. Si no lo haces, es posible que se produzca un error de "Aplicación no responde" (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();
  }
}