Comenzar

La Mediación de AdMob es una función que te permite publicar anuncios en tus aplicaciones desde varias fuentes, incluidas la red de AdMob y las fuentes de anuncios de terceros, en un solo lugar. La mediación de AdMob te ayuda a maximizar tu tasa de relleno y aumentar tu monetización, ya que envía solicitudes de anuncios a varias redes para verificar que encuentres la mejor red disponible para publicar anuncios. Caso de éxito.

Requisitos previos

Antes de integrar la mediación para un formato de anuncio, debes integrar ese formato de anuncio en tu app:

¿Es la primera vez que utilizas la mediación? Lee la Descripción general de la Mediación de AdMob.

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

En la guía de inicio rápido, se muestra cómo inicializar el SDK de anuncios de Google para dispositivos móviles (beta). Durante esa llamada de inicialización, también se inicializan los adaptadores de mediación. Es importante esperar a que se complete la inicialización antes de cargar anuncios para verificar la participación completa de cada red de anuncios en la primera solicitud de anuncios.

En el siguiente código de muestra, se muestra cómo puedes verificar el estado de inicialización de cada adaptador antes de realizar una solicitud de anuncio.

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, InitializationConfig.Builder("SAMPLE_APP_ID").build()) {
        initializationStatus ->
        for ((adapterName, adapterStatus) in initializationStatus.adapterStatusMap) {
          Log.d(
            "MyApp",
            String.format(
              "Adapter name: %s, Status code: %s, Status string: %s, Latency: %d",
              adapterName,
              adapterStatus.initializationState,
              adapterStatus.description,
              adapterStatus.latency,
            ),
          )
        }
        // 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.AdapterStatus;
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,
                  new InitializationConfig.Builder("SAMPLE_APP_ID")
                      .build(),
                  initializationStatus -> {
                    Map<String, AdapterStatus> adapterStatusMap =
                        initializationStatus.getAdapterStatusMap();
                    for (String adapterClass : adapterStatusMap.keySet()) {
                      AdapterStatus adapterStatus = adapterStatusMap.get(adapterClass);
                      Log.d(
                          "MyApp",
                          String.format(
                              "Adapter name: %s, Status code: %s, Status description: %s,"
                                  + " Latency: %d",
                              adapterClass,
                              adapterStatus.getInitializationState(),
                              adapterStatus.getDescription(),
                              adapterStatus.getLatency()));
                    }
                    // Adapter initialization is complete.
                  });
              // Other methods on MobileAds can now be called.
            })
        .start();
  }
}

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 de Google para dispositivos móviles (beta) 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 de Google para dispositivos móviles (beta) actual para que los adaptadores de mediación no lo extraigan como dependencia.

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

configurations {
  all {
    exclude(group = "com.google.android.gms", module = "play-services-ads")
    exclude(group = "com.google.android.gms", module = "play-services-ads-lite")
  }
}

Verifica qué clase de adaptador de red de publicidad cargó el anuncio

A continuación, se muestra un código de muestra que registra el nombre de la clase de la red de publicidad para un anuncio de banner:

Kotlin

BannerAd.load(
  BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
  object : AdLoadCallback<BannerAd> {
    override fun onAdLoaded(ad: BannerAd) {
      Log.d(
        "MyApp", "Adapter class name: " +
          ad.getResponseInfo().mediationAdapterClassName
      )
    }
  }
)

Java

BannerAd.load(
  new BannerAdRequest.Builder("AD_UNIT_ID", AdSize.BANNER).build(),
  new AdLoadCallback<BannerAd>() {
    @Override
    public void onAdLoaded(@NonNull BannerAd ad) {
      Log.d("MyApp",
          "Adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
    }
  }
);

Asegúrate de inhabilitar la actualización en todas las IU de fuentes de anuncios de terceros para las unidades de anuncios de banner que se utilizan en la Mediación de AdMob. Esto evita una actualización doble, ya que AdMob también activa una actualización según la frecuencia de actualización de tu unidad de anuncios de banner.

Leyes de privacidad estatales de EE.UU. y RGPD

Si necesitas satisfacer las leyes de privacidad de los estados de EE.UU. o el Reglamento General de Protección de Datos (RGPD), sigue los pasos que se indican en la configuración de las reglamentaciones estatales de EE.UU. o en la configuración del RGPD para agregar a tus socios de mediación a la lista de socios publicitarios de los estados de EE.UU. o del RGPD de Privacidad y mensajería de AdMob. De lo contrario, es posible que los socios no publiquen anuncios en tu app.

Obtén más información para habilitar el procesamiento de datos restringido (PDR) y obtener el consentimiento del RGPD con el SDK de Google User Messaging Platform (UMP).