Android TV
Интеграция для телевизоров и приставок на Android TV. Код тот же, что для Android, отличия — в адресе, наборе кнопок и управлении с пульта.
Что меняется
| Android | Android TV | |
|---|---|---|
| Адрес | …/android/v3/ | …/androidtv/v3/ |
| Управление | Касание | Пульт: стрелки, OK |
| Кнопки | ad-skip-btn, ad-click-btn, ad-more-menu, ad-disable-btn | ad-skip-btn, ad-click-btn, ad-disable-btn, ad-info, ad-notice |
| ERID и рекламодатель | В меню «Подробнее» | Всегда на экране (ad-info) |
Раскладка экрана
ad-noticead-click-btn
Рекламный ролик · плеер приложения
ad-info ERID · рекламодатель
ad-skip-btnad-disable-btn
Точно так же экран выглядит в песочнице с платформой Android TV: она рендерит SDK в разрешении 960×540, как у телевизора 1080p.
Пульт
- Когда WebView получает фокус, SDK ставит его на кнопку
ad-disable-btn, если она включена. - Кнопки OK и Enter нажимают элемент в фокусе.
- Чтобы передать фокус интерактивному VPAID-креативу, вызовите
window.myAdController.setFocusToPlayer().
Передайте фокус WebView
Нажатия пульта получает только View в фокусе. Сразу после открытия рекламы вызовите webView.requestFocus(), иначе кнопки SDK не будут реагировать.
kotlin
webView.isFocusable = true
webView.isFocusableInTouchMode = true
webView.loadUrl(adPageUrl)
webView.requestFocus()Кнопка «Назад»
Реклама не закрывается сама по кнопке «Назад». Решите, что она делает в вашем приложении, — например, разрешите выход только после AdSkippableStateChanged(true):
kotlin
private var isSkippable = false // true после AdSkippableStateChanged(true)
override fun onBackPressed() {
if (isSkippable) sdk("skipAd()") // до этого момента «Назад» ничего не делает
}Остальное — плеер, события, timeupdateAd() — как на Android.