Inicializar um app com longas cadeias de mediação em hierarquia e vários adaptadores de terceiros pode aumentar a latência das solicitações de anúncios, especialmente para as primeiras impressões que surgem na sessão do usuário. Esse aumento na latência da primeira impressão pode impedir a veiculação do anúncio, já que a solicitação ainda não retornou uma resposta.
Neste guia, abordamos o seguinte para reduzir essa latência nas sessões do app:
- Definir um tempo limite de inicialização
- Remover origens de anúncios em hierarquia da sua primeira solicitação
- Melhorar a performance em impressões menos urgentes
Antes de começar
Antes de continuar, configure o Google Mobile Ads SDK.
Definir um tempo limite de inicialização
Para não perder uma oportunidade de impressão, defina um tempo limite de inicialização. Assim, o app não excede o prazo definido. Você poderá prosseguir com a solicitação de anúncio após o limite de tempo definido ou depois que a inicialização for concluída.
O exemplo a seguir define um tempo limite de inicialização de 5 segundos:
Kotlin
// Set up a CONFLATED channel that only buffers the latest event.
private val adLoadChannel = Channel<Unit>(Channel.CONFLATED)
fun initialize(context: Context) {
// Coroutine to handle the 5-second timeout.
CoroutineScope(Dispatchers.Default).launch {
delay(5000L)
// 5 second timer elapsed
adLoadChannel.trySend(Unit)
}
// Coroutine to call MobileAds.initialize() on a background thread.
CoroutineScope(Dispatchers.IO).launch {
MobileAds.initialize(context) {
// Mobile Ads SDK initialization finished.
adLoadChannel.trySend(Unit)
}
}
// Coroutine to listen for init complete or timer, whichever comes first.
CoroutineScope(Dispatchers.Main).launch {
// Wait on the first event.
adLoadChannel.receive()
loadAd()
// Close the channel after receiving the first event.
adLoadChannel.close()
}
}
Remover origens de anúncios em hierarquia da sua primeira solicitação
Se quiser veicular anúncios sem latência extra das origens de anúncios em hierarquia, implemente a segmentação de chave-valor para remover essas origens da sua primeira solicitação de anúncio. Siga estas etapas:
- Crie um grupo de mediação e adicione origens de anúncios dos lances.
- Adicione a segmentação de chave-valor ao novo grupo de mediação somente de lances usando a chave
latencye o valorlow. - Priorize o novo grupo de mediação somente de lances, que fica acima do grupo de mediação principal na interface. Para ajustar a ordem, mude a prioridade dos grupos de mediação.
Na primeira solicitação de anúncio, inclua o par de chave-valor de segmentação personalizada:
Kotlin
val request = AdRequest.Builder() .addCustomTargeting("latency", "low") .build()Java
AdRequest request = new AdRequest.Builder() .addCustomTargeting("latency", "low") .build();Teste a configuração da segmentação de chave-valor para confirmar se você está segmentando corretamente o novo grupo de mediação somente de lances.
Melhorar a performance em impressões menos urgentes
Para otimizar a performance em impressões menos urgentes, como anúncios que não precisam aparecer logo após a inicialização do app, use o pré-carregamento de anúncios com uma solicitação que não segmenta o grupo de mediação somente de lances.