События
SDK сообщает приложению о каждом шаге показа. Имена событий одинаковы на всех платформах, отличается только способ доставки: Android, iOS, браузер.
Порядок событий описан в разделе Жизненный цикл рекламы.
Список событий
| Событие | Когда приходит | Данные |
|---|---|---|
AdTagStartLoading | Началась загрузка VAST-тега | — |
AdTagLoaded | VAST-тег загружен | ad_is_no_banner |
AdLoaded | Креатив загружен и готов к показу | см. ниже |
AdStarted | Начался показ рекламы (один раз на блок) | ad_number |
AdCreativeStarted | Начался показ ролика (для каждого ролика блока) | ad_number |
AdFirstQuartile | Просмотрено 25% ролика | ad_number |
AdMidpoint | Просмотрено 50% ролика | ad_number |
AdThirdQuartile | Просмотрено 75% ролика | ad_number |
AdComplete | Ролик досмотрен до конца | ad_number, ad_is_last, ad_is_pod |
AdPaused | Показ поставлен на паузу | — |
AdResumed | Показ возобновлён | — |
AdSkippableStateChanged | Ролик стало можно пропустить | status |
AdSkipped | Ролик пропущен | ad_number |
AdClick | Переход по рекламе | url, ad_number |
AdClosed | Пользователь закрыл креатив | — |
AdDisable | Нажата кнопка «Отключить рекламу» | — |
AdSetURL | Выбран видеофайл для показа | ad_media_file_url |
AdError | Ошибка загрузки или показа | см. ниже |
AdDestroyed | Показ ролика закончен, ресурсы освобождены | ad_is_last |
AdPodCompleted | Показан весь рекламный блок | ad_pod_length, ad_pod_showed_count, ad_is_last |
AdsEnded | Показ всей рекламы закончен (только браузер) | — |
Поля
| Поле | Тип | Описание |
|---|---|---|
ad_number | number | Номер ролика в блоке, начиная с 1. Для рекламы из одного ролика — -1. |
ad_is_last | boolean | Ролик последний в блоке. |
ad_is_pod | boolean | Реклама — блок из нескольких роликов. |
ad_is_no_banner | boolean | В ответе нет рекламы. |
status | boolean | Можно ли пропустить ролик. SDK присылает событие, когда ролик становится пропускаемым, со значением true. |
url | string | Ссылка перехода на сайт рекламодателя. |
ad_media_file_url | string | URL выбранного видеофайла. |
ad_pod_length | number | Число роликов в блоке. |
ad_pod_showed_count | number | Сколько роликов блока показано. |
AdLoaded
| Поле | Тип | Описание |
|---|---|---|
ad_creative_src_url | string | URL креатива. |
ad_creative_banner_id | string | Идентификатор баннера. |
ad_creative_type | string | Тип креатива. |
ad_creative_duration_sec | number | Длительность в секундах. |
ad_creative_duration_msec | number | Длительность в миллисекундах. |
ad_media_file_src_url | string | URL видеофайла. |
ad_number | number | Номер ролика в блоке. |
ad_is_no_banner | boolean | В ответе нет рекламы. |
ad_is_pod | boolean | Реклама — блок из нескольких роликов. |
ad_is_last | boolean | Ролик последний в блоке. |
ad_pod_length | number | Число роликов в блоке. |
erid | string | ERID креатива или пустая строка. |
AdError
| Поле | Тип | Описание |
|---|---|---|
code | string | Код ошибки, см. Ошибки. |
message | string | Описание ошибки. |
type | string | adLoadError — ошибка загрузки, adShowError — ошибка показа. |
ad_is_no_banner | boolean | В ответе нет рекламы. |
ad_is_last | boolean | Ролик последний в блоке. |
ad_number | number | Номер ролика в блоке. |
Android
SDK вызывает методы JavaScript-интерфейса window.Android. Аргументы передаются по порядку. Объявляйте методы с точно таким числом аргументов, как в таблице.
| Событие | Вызов |
|---|---|
AdTagStartLoading | AdTagStartLoading() |
AdTagLoaded | AdTagLoaded(), затем AdCreativeVastLoaded(ad_is_no_banner) |
AdLoaded | AdCreativeLoaded(ad_creative_src_url, ad_creative_type, ad_creative_banner_id, ad_is_no_banner, ad_is_pod, ad_pod_length, ad_is_last, erid, ad_creative_duration_msec), затем AdLoaded(ad_media_file_src_url) |
AdStarted | AdStarted(ad_number) |
AdCreativeStarted | AdCreativeStarted(ad_number) |
AdFirstQuartile | AdFirstQuartile(ad_number) |
AdMidpoint | AdMidpoint(ad_number) |
AdThirdQuartile | AdThirdQuartile(ad_number) |
AdComplete | AdComplete(ad_number) |
AdPaused | AdPaused() |
AdResumed | AdResumed() |
AdSkippableStateChanged | AdSkippableStateChanged(status) |
AdSkipped | AdSkipped(ad_number) |
AdClick | AdClick(url, ad_number) |
AdClosed | AdClosed() |
AdDisable | AdDisable() |
AdSetURL | AdSetURL(ad_media_file_url) |
AdError | AdError(code, message, type, ad_is_no_banner, ad_is_last, ad_number) |
AdDestroyed | AdDestroyed(ad_is_last) |
AdPodCompleted | AdPodCompleted(ad_is_last) |
AdError приходит один раз, в том числе если ошибка возникла до загрузки рекламы (например, в адресе страницы нет url). SDK вызывает шестиаргументный метод. Если приложение объявило только старую сигнатуру AdError(code, message, type, ad_is_no_banner) или AdError(code, message, type), SDK вызовет её.
iOS
SDK отправляет сообщения в обработчик AdEventsHandler:
window.webkit.messageHandlers.AdEventsHandler.postMessage({ name: 'AdLoaded', ...data });Поле name содержит имя события, остальные поля — данные события из списка.
{
"name": "AdComplete",
"ad_number": 1,
"ad_is_last": true,
"ad_is_pod": false
}Браузер
Подпишитесь через loader.on(). Обработчик получает объект с данными из списка.
loader.on('AdClick', ({ url, ad_number }) => {
window.open(url, '_blank');
});