Configurar a mediação

Neste guia, mostramos como integrar um adaptador de mediação ao seu app Android.

Pré-requisitos

Antes de integrar a mediação para um formato de anúncio, é necessário integrar esse formato ao seu app:

Não conhece a mediação? Leia Introdução à mediação.

Inicializar GMA Next-Gen SDK

O guia de início rápido mostra como inicializar o GMA Next-Gen SDK. Durante essa chamada de inicialização, os adaptadores de mediação também são inicializados. É importante aguardar a conclusão da inicialização antes de carregar anúncios para verificar a participação total de cada rede de publicidade na primeira solicitação de anúncio.

O exemplo de código a seguir mostra como verificar o status de inicialização de cada adaptador antes de fazer uma solicitação de anúncio.

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, 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 GMA Next-Gen SDK 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();
  }
}

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

Os adaptadores de mediação continuam dependendo do GMA Next-Gen SDK 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, é necessário impedir que o atual GMA Next-Gen SDK seja extraído como uma dependência pelos adaptadores de mediação.

No arquivo build.gradle 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"
}

Verificar qual classe de adaptador da rede de publicidade carregou o anúncio

Confira um exemplo de código que registra o nome da classe da rede de publicidade para um anúncio 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());
    }
  }
);

Desative a atualização em todas as interfaces de origem de anúncios de terceiros para blocos de anúncios de banner usados na mediação. Isso evita uma atualização dupla, já que o Ad Manager também aciona uma atualização com base na taxa de atualização do bloco de anúncios de banner.

Leis Estaduais de Privacidade dos EUA e GDPR

Se você precisar obedecer às Leis Estaduais de Privacidade dos EUA ou ao Regulamento Geral de Proteção de Dados (GDPR), siga as etapas nas configurações das regulamentações estaduais dos EUA ou nas configurações do GDPR para adicionar seus parceiros de mediação na lista de parceiros de anúncios das Leis Estaduais de Privacidade dos EUA ou do GDPR em Privacidade e mensagens do Ad Manager. Caso contrário, os parceiros não poderão veicular anúncios no seu app.

Saiba mais sobre como ativar o tratamento de dados restrito (RDP, na sigla em inglês) e receber o consentimento do GDPR com o SDK da plataforma de mensagens aos usuários (UMP) do Google.