Инициализация приложения с длинными цепочками каскадной медиации и несколькими сторонними адаптерами может увеличить задержку запроса объявления для важных показов, которые выполняются первыми в сеансе пользователя. Из-за этого увеличивается задержка первого показа, и объявление может не показываться, поскольку запрос объявления ещё не вернул ответ.
В этом руководстве рассказывается, как сократить задержку первого показа в сеансах приложения.
- Как задать время ожидания инициализации
- Удалите источники объявлений в каскаде из первого запроса
- Повышение эффективности показов, не зависящих от времени
Подготовка
Прежде чем продолжить, настройте 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();Проверьте настройки сегментирования "ключ-значение", чтобы убедиться, что вы правильно настроили таргетинг на новую группу медиации с алгоритмической продажей.
Повышение эффективности показов, не зависящих от времени
Чтобы повысить эффективность показов, не требующих срочности, например объявлений, которые не нужно показывать сразу после запуска приложения, используйте предварительную загрузку объявлений с запросом объявления, который не нацелен на группу медиации с назначением ставок.