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 | Ровно эта сборка, никогда не меняется | Когда нужно полностью контролировать обновления |
latest | latest | Последний релиз, включая мажорные | Только для отладки: следующий мажорный релиз сломает интеграцию |
Переход на следующую мажорную версию (v4) — осознанное обновление: сначала прочтите блок «Перед обновлением» в релизах. SDK всегда сообщает рекламному серверу точную версию через , даже если подключён канал.
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
url | ✅ | VAST-тег, закодированный через 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.