Инициализация приложения с длинными цепочками каскадной медиации и несколькими сторонними адаптерами может увеличить задержку запроса объявления для важных показов, которые выполняются первыми в сеансе пользователя. Это может привести к тому, что объявление не будет показано, поскольку ответ на запрос объявления ещё не получен.
В этом руководстве рассказывается, как сократить задержку первого показа в сеансах приложения.
- Как задать время ожидания инициализации
- Удалите источники объявлений в каскаде из первого запроса
- Повышение эффективности показов, не зависящих от времени
Подготовка
Прежде чем продолжить, настройте Google Mobile Ads SDK (Legacy).
Как задать время ожидания инициализации
Чтобы не упустить возможность показа, задайте время ожидания инициализации. Это позволит избежать превышения заданного вами ограничения по времени. Вы можете продолжить запрос объявления по истечении заданного вами времени или после завершения инициализации.
В следующем примере время ожидания инициализации составляет пять секунд:
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()
}
}
Удалите источники объявлений в каскаде при первом запросе
Чтобы показывать объявления без задержек, связанных с источниками объявлений в каскаде, настройте сегментацию по парам "ключ-значение". Это позволит исключить источники объявлений в каскаде из первого запроса объявления. Выполните следующие действия:
- Создайте группу медиации и добавьте источники объявлений с назначением ставок.
- Добавьте сегментирование по парам "ключ-значение" в новую группу медиации только для назначения ставок, используя ключ
latencyи значениеlow. - В интерфейсе задайте для новой группы медиации только с назначением ставок более высокий приоритет, чем для основной группы медиации. Чтобы изменить порядок, измените приоритет группы медиации.
В первый запрос объявления включите пару "ключ-значение" для таргетинга со специальными настройками:
Kotlin
val request = AdRequest.Builder() .addCustomTargeting("latency", "low") .build()Java
AdRequest request = new AdRequest.Builder() .addCustomTargeting("latency", "low") .build();Протестируйте настройки сегментирования по парам "ключ-значение", чтобы убедиться, что таргетинг на новую группу медиации только с назначением ставок настроен правильно.
Повышение эффективности показов, не зависящих от времени
Чтобы повысить эффективность показов, не требующих срочности (например, когда объявление не нужно показывать сразу после запуска приложения), используйте предварительную загрузку объявлений с запросом объявления, который не настроен на таргетинг группы медиации, предназначенной только для назначения ставок.