Skip to content

WebView: общая схема

На Android, Android TV и iOS приложение открывает страницу SDK в WebView. Схема одинакова для всех трёх платформ: отличаются только способ получать события и код плеера. Платформенные детали — на страницах Android, Android TV и iOS.

Адрес страницы

https://cdn.adsdk.ru/android/v3/?url=https%3A%2F%2Fads.example.com%2Fvast.xml&lang=ru&controls=%5B%22ad-skip-btn%22%5D

Платформа и версия — часть пути, настройки показа — параметры. Те же файлы доступны по адресу https://adsdk.ru/sdk/… — например, https://adsdk.ru/sdk/android/v3/.

Платформа

ПутьПлатформа
/android/Android: телефоны и планшеты
/androidtv/Android TV
/ios/iPhone, iPad
/web/Браузерный пакет, см. Браузер

Версия

КаналПримерЧто приходитДля чего
Мажорныйv3Все исправления и новые возможности 3.x, без несовместимых измененийРекомендуется для продакшна
Точная версияv3.0.0Ровно эта сборка, никогда не меняетсяКогда нужно полностью контролировать обновления
latestlatestПоследний релиз, включая мажорныеТолько для отладки: следующий мажорный релиз сломает интеграцию

Переход на следующую мажорную версию (v4) — осознанное обновление: сначала прочтите блок «Перед обновлением» в релизах. SDK всегда сообщает рекламному серверу точную версию через , даже если подключён канал.

Параметры

ПараметрОбязательныйОписание
urlVAST-тег, закодированный через encodeURIComponent.
lang, controls, autoplay, …См. Параметры.
Любые другиеДобавляются к VAST-ссылке без изменений — так можно передать макросы рекламному серверу.

Кто проигрывает видео

Основной режим — плеер приложения. Реклама идёт тем же плеером, что и контент: с аппаратным декодированием, тем же качеством и без повторной буферизации в WebView.

Сценарий показа

Что делает приложение

КогдаЧто вызвать
Пришёл AdLoadedЗагрузить адрес видеофайла в свой плеер.
Плеер начал воспроизведениеplayAd()
Каждое обновление позиции плеера (~4 раза в секунду)timeupdateAd(позиция, длительность) в секундах
Пользователь поставил на паузу / продолжилpauseAd() / playAd()
Ролик закончилсяtimeupdateAd(длительность, длительность)
Пришёл AdSkipped или AdErrorОстановить плеер.
Пришёл AdClickОткрыть url в браузере.
Пришёл AdDestroyed с ad_is_last = trueЗакрыть WebView, вернуться к контенту.

Связь приложения и SDK

  • Методы вызываются выполнением JavaScript в WebView: window.myAdController.<метод>(...). Список — в разделе Методы.
  • События на Android приходят вызовами методов JavaScript-интерфейса Android, на iOS — сообщениями в обработчик AdEventsHandler. Список и форматы — в разделе События.

Прозрачный WebView

Страница SDK прозрачная. Сделайте прозрачным и сам WebView, иначе ролик не будет виден: Android — setBackgroundColor(Color.TRANSPARENT), iOS — isOpaque = false и backgroundColor = .clear.

Страница открыта во фрейме

window.myAdController создаётся в окне страницы SDK. Если WebView загружает её внутри iframe, обращайтесь к контроллеру через window.top.myAdController.