VK Реклама – платформа для рекламы на проектах VK
Обновления
Обучение
Полезные материалы
Мероприятия
Курсы
Бизнесу
Кейсы
Каталог таргетологов
Программа лояльности
Экспертам
Сообщество экспертов
Сертификация
Рекламная сеть
Справка
Загружается...
Регистрация
Справка
Авторизация
Создание нового кабинета, авторизация
Перенос кампаний и аудиторий
Перенос кампаний из myTarget
Перенос кампаний из ВКонтакте
Перенос аудиторий из myTarget
Перенос аудиторий из ВКонтакте
Подключение кабинета к агентству
Агентствам: регистрация и импорт кабинета
Обзор кабинета
Мультиаккаунты
Подключение VK ID
Удаление аккаунта
Создание рекламы
Как создать рекламу
Этапы создания
Лимит количества объявлений
Статусы кампаний, групп и объявлений
Редактирование кампаний, групп и объявлений
Копирование кампаний, групп, объявлений
Удаление и восстановление кампаний, групп и объявлений
Предпросмотр объявлений
Добавление редиректа в белый список
Мобильные приложения
Продвижение мобильных приложений
Добавление нового приложения
Интеграция приложения с трекером
Интеграция приложения с трекером MyTracker
Требования к трекинг-ссылкам MyTracker
Интеграция приложения с трекером AppMetrica
Требования к трекинг-ссылкам AppMetrica
Интеграция приложения с трекером AppsFlyer
Требования к трекинг-ссылкам AppsFlyer
Интеграция приложения с трекером Adjust
Требования к трекинг-ссылкам Adjust
Интеграция приложения с трекером Branch
Требования к трекинг-ссылкам Branch
Интеграция приложения с трекером Tenjin
Требования к трекинг-ссылкам Tenjin
Интеграция приложения с трекером Singular
Требования к трекинг-ссылкам Singular
Интеграция приложений из Huawei AppGallery с трекерами
Интеграция приложений из RuStore с трекерами
Запуск кампаний приложений из RuStore – оптимизация на события
Бесшовная установка приложений из RuStore
Карточки приложений
SKAdNetwork
Макросы в трекинг-ссылках
Диплинки в рекламе мобильного приложения
Сайты
Запуск рекламы сайта
Пиксель VK Рекламы
Визуальный конструктор событий
Аудиторные теги пикселя
Передача офлайн-событий в пиксель
Атрибуция конверсий для сайтов
Атрибуция офлайн-конверсий на основе CRM данных
Портрет аудитории сайта
Разметка ссылки для верификации кликов
Технология Universal Link/App Link на сайте
Сервис диагностики сайтов — VK Site Checker
Каталоги товаров
Реклама товаров сайта или приложения
Реклама товаров сообщества
Реклама товаров маркетплейса
Центр коммерции
Центр коммерции
Товары
Группы товаров
Диагностика
События
История загрузок
Каталоги
Каталоги — что это, как создать, отредактировать и удалить
Общие требования к каталогам
Создание каталога для маркетплейса
Каталог для товаров по спецификации Google
Каталог для товаров по спецификации Yandex
Каталог для недвижимости
Каталог для недвижимости по спецификации Yandex
Каталог для транспортных средств
Каталог для транспортных средств по спецификации Yandex
Каталог для сервисов услуг
Каталог для авиарейсов
Каталог для авиарейсов (спецификация Google)
Каталог для гостиниц
Каталог для гостиниц (спецификация Google)
Каталог для лекарств по спецификации Yandex
Каталог для лекарств по спецификации Google
Динамический ретаргетинг
Динамический ретаргетинг на базе мобильных событий
Динамический ретаргетинг на базе веб-событий
Параметры для мобильных приложений в рекламе товаров из каталога
Макросы в рекламе продуктов из каталога
Продвижение в соцсетях
Продвижение видео и трансляций ВКонтакте
Продвижение музыки ВКонтакте
Как разместить контент в VK Музыке
Продвижение мини-приложений: VK Mini Apps и игры ВКонтакте
Как отправлять события из мини-приложения
Продвижение личных профилей ВКонтакте
Как настроить личный профиль перед продвижением
Продвижение групп и профилей в Одноклассниках
Сообщества
Продвижение сообществ
Смарт-кампании
Дзен
Продвижение статьи и канала в Дзене
Scroll-to-site
Советы по запуску кампаний в Дзене
Рекламные пиксели в статье Дзена
Лид-формы и опросы
Запуск рекламы с лид-формой
Запуск рекламы с опросом
Запуск рекламы формы онлайн-записи YCLIENTS
Создание лендинга для прогрева лид-формы
Сплит-тест для лид-форм
Советы по запуску рекламы с лид-формами
Медийная реклама
Запуск медийной рекламы
Баннерная реклама
Аудиореклама
Видеореклама
Медийный формат «Пост, видео или клип»
Медийный формат «Дзен»
HTML5 баннер
Премиальное размещение
Группа и профиль ОК
Прямые сделки
Агентствам
Клиенты агентства
Менеджеры агентства
Права доступа
Настройки рекламы
Форматы рекламы
Безопасные зоны
Текст и заголовок объявления
Генерация текста
Редактор текста
Макросы в заголовке и тексте объявления
Изображения и видео
Медиатека
Генерация видео
Генерация изображений
Редактирование изображений: увеличение масштаба, улучшение качества, дорисовка
Умное кадрирование изображений
Галерея изображений, созданных нейросетью
Оптимизация бюджета
Стратегии ставок
Аукцион
Таргетинги
Автоматический подбор таргетингов
Аудитории и списки
Аудитории
Списки пользователей
Загрузка внешней аудитории
Похожие аудитории (look-alike)
Расширение аудитории
Сбор аудитории по реакциям
UTM-метки
REF-метки
Места размещения
История изменений кабинета
Сочетания клавиш для работы в кабинете
API VK Рекламы
Статистика и финансы
Работа с дашбордом
Метрики и расширенная статистика
Оценка эффективности
Выгрузка отчёта
Запуск, остановка, восстановление, удаление
Статистика из приложений для веб-кампаний
Биллинг и финансы
Агентствам: статистика по клиентам
Агентствам: баланс, оплата, закрывающие документы
Бонусы и промокоды
Документы
Правила размещения рекламы
Пояснения к Правилам размещения рекламы
Документы для запуска рекламы
Предвыборная агитация в России
Правила размещения агитационных материалов
Юридические документы
Маркировка рекламы
Что такое ОРД
Как заполнить данные для ОРД
Агентствам
Рекламодателям
Как маркируется реклама
Статус объявления в ОРД
Агентствам: как подавать отчёты
Сбор на рекламу
Мобильный кабинет
Обзор кабинета
Как открыть кабинет на телефоне
Гид по интерфейсу
Открывается пустой кабинет
Нет рекламы в кабинете
Перенос объявлений из кабинета ВКонтакте
Возврат в рекламный кабинет ВКонтакте
Пополнение бюджета
Как пополнить бюджет
Акции и промокоды
Создание рекламы
Выбор цели
Привлечь клиентов, подписчиков
Принять заказы в сообщениях
Продвигать пост, видео или клип
Продать товары, оказать услуги
Привлечь посетителей на сайт
Получить лиды (контакты)
Настройка аудитории и бюджета
Предпросмотр
Лимит объявлений
Изменение, копирование и удаление объявления
Как изменить или скопировать объявление
Как остановить или удалить объявление
Объявление отклонено
Как найти ID объявления
Статистика
Анализ статистики
Оценка эффективности объявлений
Кабинет партнёра
Начало работы
Регистрация аккаунта партнёра
Импорт партнёрского кабинета myTarget
Настройка аккаунта партнёра
Подключение дополнительных аккаунтов
Уведомления в аккаунте партнёра
Сотрудничество с самозанятыми партнёрами
Блокировка рекламы
Получение строк для ads.txt и app-ads.txt
Реклама на сайтах
Создание и настройка площадки для сайтов
Типы рекламных блоков для сайтов
Адаптивный блок: создание и интеграция кода
InStream блок: доступ и создание
InPage блок: настройка и интеграция кода
Выбор режима flyroll для inPage блоков на сайтах
Рекомендательный виджет
Рекомендательный виджет API
Реклама на сайтах с CSP
Плагин для сайтов на WordPress
Finger Print ID
Реклама в приложениях
Создание и настройка площадки для приложений
Типы рекламных блоков для приложений
Документация по интеграции
Web
Интеграция на страницы сайта
Интеграция внутри видео
Header Bidding
События и коды плеера Adman3
Android
Рекомендации по работе с Google Privacy & Security
Интеграция Android
Баннер Android
Нативный блок Android
Полноэкранный блок Android
Видео с вознаграждением Android
In-stream видео Android
История изменений SDK Android
Адаптеры для других медиаций Android
Тестовый режим Android
Нативный баннер Android (доступен по запросу)
iOS
Интеграция iOS
Баннер iOS
Нативный блок iOS
Полноэкранный блок iOS
Видео с вознаграждением iOS
История изменений SDK iOS
Адаптеры для других медиаций iOS
Тестовый режим iOS
Нативный баннер iOS (доступен по запросу)
Unity
Интеграция Unity
Баннер Unity
Полноэкранный блок Unity
Видео с вознаграждением Unity
Тестовый режим Unity
Медиация ironSource
Медиация MAX
Пользовательские данные
Тестирование интеграции
Прямые сделки
Прямые сделки для поставщиков трафика
Маркетплейс прямых сделок
Создание и настройка прямой сделки
Редактирование сделки
Статистика и выгрузка отчётов по сделкам
Статистика в кабинете партнёра
Статистика по монетизации
Отчётность ОРД
Работа партнёров с ОРД VK
API Рекламной сети VK
Включение поддержки API
Получение статистики партнера по API
Management API
Документы партнёров
Юридические документы Рекламной сети VK
Правила Рекламной сети VK
Изменение документов партнера
Вывод заработанных средств для резидентов
Вывод заработанных средств для нерезидентов
Модерация площадок (сайты и приложения)
Реквизиты компании для партнёров-резидентов
Подключение ЭДО
Помощь
Глоссарий
Часто задаваемые вопросы по монетизации
Поддержка Рекламной сети VK
FAQ
Как связаться с поддержкой VK Рекламы
Как узнать ID кампании или объявления
Как перенести бюджет из ВКонтакте в VK Рекламу
Почему кампания не транслируется
Как заполнить информацию о компании или ИП
Часто задаваемые вопросы
Авторизация
Создание нового кабинета, авторизация
Перенос кампаний и аудиторий
Перенос кампаний из myTarget
Перенос кампаний из ВКонтакте
Перенос аудиторий из myTarget
Перенос аудиторий из ВКонтакте
Подключение кабинета к агентству
Агентствам: регистрация и импорт кабинета
Обзор кабинета
Мультиаккаунты
Подключение VK ID
Удаление аккаунта
Создание рекламы
Как создать рекламу
Этапы создания
Лимит количества объявлений
Статусы кампаний, групп и объявлений
Редактирование кампаний, групп и объявлений
Копирование кампаний, групп, объявлений
Удаление и восстановление кампаний, групп и объявлений
Предпросмотр объявлений
Добавление редиректа в белый список
Мобильные приложения
Продвижение мобильных приложений
Добавление нового приложения
Интеграция приложения с трекером
Интеграция приложения с трекером MyTracker
Требования к трекинг-ссылкам MyTracker
Интеграция приложения с трекером AppMetrica
Требования к трекинг-ссылкам AppMetrica
Интеграция приложения с трекером AppsFlyer
Требования к трекинг-ссылкам AppsFlyer
Интеграция приложения с трекером Adjust
Требования к трекинг-ссылкам Adjust
Интеграция приложения с трекером Branch
Требования к трекинг-ссылкам Branch
Интеграция приложения с трекером Tenjin
Требования к трекинг-ссылкам Tenjin
Интеграция приложения с трекером Singular
Требования к трекинг-ссылкам Singular
Интеграция приложений из Huawei AppGallery с трекерами
Интеграция приложений из RuStore с трекерами
Запуск кампаний приложений из RuStore – оптимизация на события
Бесшовная установка приложений из RuStore
Карточки приложений
SKAdNetwork
Макросы в трекинг-ссылках
Диплинки в рекламе мобильного приложения
Сайты
Запуск рекламы сайта
Пиксель VK Рекламы
Визуальный конструктор событий
Аудиторные теги пикселя
Передача офлайн-событий в пиксель
Атрибуция конверсий для сайтов
Атрибуция офлайн-конверсий на основе CRM данных
Портрет аудитории сайта
Разметка ссылки для верификации кликов
Технология Universal Link/App Link на сайте
Сервис диагностики сайтов — VK Site Checker
Каталоги товаров
Реклама товаров сайта или приложения
Реклама товаров сообщества
Реклама товаров маркетплейса
Центр коммерции
Центр коммерции
Товары
Группы товаров
Диагностика
События
История загрузок
Каталоги
Каталоги — что это, как создать, отредактировать и удалить
Общие требования к каталогам
Создание каталога для маркетплейса
Каталог для товаров по спецификации Google
Каталог для товаров по спецификации Yandex
Каталог для недвижимости
Каталог для недвижимости по спецификации Yandex
Каталог для транспортных средств
Каталог для транспортных средств по спецификации Yandex
Каталог для сервисов услуг
Каталог для авиарейсов
Каталог для авиарейсов (спецификация Google)
Каталог для гостиниц
Каталог для гостиниц (спецификация Google)
Каталог для лекарств по спецификации Yandex
Каталог для лекарств по спецификации Google
Динамический ретаргетинг
Динамический ретаргетинг на базе мобильных событий
Динамический ретаргетинг на базе веб-событий
Параметры для мобильных приложений в рекламе товаров из каталога
Макросы в рекламе продуктов из каталога
Продвижение в соцсетях
Продвижение видео и трансляций ВКонтакте
Продвижение музыки ВКонтакте
Как разместить контент в VK Музыке
Продвижение мини-приложений: VK Mini Apps и игры ВКонтакте
Как отправлять события из мини-приложения
Продвижение личных профилей ВКонтакте
Как настроить личный профиль перед продвижением
Продвижение групп и профилей в Одноклассниках
Сообщества
Продвижение сообществ
Смарт-кампании
Дзен
Продвижение статьи и канала в Дзене
Scroll-to-site
Советы по запуску кампаний в Дзене
Рекламные пиксели в статье Дзена
Лид-формы и опросы
Запуск рекламы с лид-формой
Запуск рекламы с опросом
Запуск рекламы формы онлайн-записи YCLIENTS
Создание лендинга для прогрева лид-формы
Сплит-тест для лид-форм
Советы по запуску рекламы с лид-формами
Медийная реклама
Запуск медийной рекламы
Баннерная реклама
Аудиореклама
Видеореклама
Медийный формат «Пост, видео или клип»
Медийный формат «Дзен»
HTML5 баннер
Премиальное размещение
Группа и профиль ОК
Прямые сделки
Агентствам
Клиенты агентства
Менеджеры агентства
Права доступа
Настройки рекламы
Форматы рекламы
Безопасные зоны
Текст и заголовок объявления
Генерация текста
Редактор текста
Макросы в заголовке и тексте объявления
Изображения и видео
Медиатека
Генерация видео
Генерация изображений
Редактирование изображений: увеличение масштаба, улучшение качества, дорисовка
Умное кадрирование изображений
Галерея изображений, созданных нейросетью
Оптимизация бюджета
Стратегии ставок
Аукцион
Таргетинги
Автоматический подбор таргетингов
Аудитории и списки
Аудитории
Списки пользователей
Загрузка внешней аудитории
Похожие аудитории (look-alike)
Расширение аудитории
Сбор аудитории по реакциям
UTM-метки
REF-метки
Места размещения
История изменений кабинета
Сочетания клавиш для работы в кабинете
API VK Рекламы
Статистика и финансы
Работа с дашбордом
Метрики и расширенная статистика
Оценка эффективности
Выгрузка отчёта
Запуск, остановка, восстановление, удаление
Статистика из приложений для веб-кампаний
Биллинг и финансы
Агентствам: статистика по клиентам
Агентствам: баланс, оплата, закрывающие документы
Бонусы и промокоды
Документы
Правила размещения рекламы
Пояснения к Правилам размещения рекламы
Документы для запуска рекламы
Предвыборная агитация в России
Правила размещения агитационных материалов
Юридические документы
Маркировка рекламы
Что такое ОРД
Как заполнить данные для ОРД
Агентствам
Рекламодателям
Как маркируется реклама
Статус объявления в ОРД
Агентствам: как подавать отчёты
Сбор на рекламу
Мобильный кабинет
Обзор кабинета
Как открыть кабинет на телефоне
Гид по интерфейсу
Открывается пустой кабинет
Нет рекламы в кабинете
Перенос объявлений из кабинета ВКонтакте
Возврат в рекламный кабинет ВКонтакте
Пополнение бюджета
Как пополнить бюджет
Акции и промокоды
Создание рекламы
Выбор цели
Привлечь клиентов, подписчиков
Принять заказы в сообщениях
Продвигать пост, видео или клип
Продать товары, оказать услуги
Привлечь посетителей на сайт
Получить лиды (контакты)
Настройка аудитории и бюджета
Предпросмотр
Лимит объявлений
Изменение, копирование и удаление объявления
Как изменить или скопировать объявление
Как остановить или удалить объявление
Объявление отклонено
Как найти ID объявления
Статистика
Анализ статистики
Оценка эффективности объявлений
Кабинет партнёра
Начало работы
Регистрация аккаунта партнёра
Импорт партнёрского кабинета myTarget
Настройка аккаунта партнёра
Подключение дополнительных аккаунтов
Уведомления в аккаунте партнёра
Сотрудничество с самозанятыми партнёрами
Блокировка рекламы
Получение строк для ads.txt и app-ads.txt
Реклама на сайтах
Создание и настройка площадки для сайтов
Типы рекламных блоков для сайтов
Адаптивный блок: создание и интеграция кода
InStream блок: доступ и создание
InPage блок: настройка и интеграция кода
Выбор режима flyroll для inPage блоков на сайтах
Рекомендательный виджет
Рекомендательный виджет API
Реклама на сайтах с CSP
Плагин для сайтов на WordPress
Finger Print ID
Реклама в приложениях
Создание и настройка площадки для приложений
Типы рекламных блоков для приложений
Документация по интеграции
Web
Интеграция на страницы сайта
Интеграция внутри видео
Header Bidding
События и коды плеера Adman3
Android
Рекомендации по работе с Google Privacy & Security
Интеграция Android
Баннер Android
Нативный блок Android
Полноэкранный блок Android
Видео с вознаграждением Android
In-stream видео Android
История изменений SDK Android
Адаптеры для других медиаций Android
Тестовый режим Android
Нативный баннер Android (доступен по запросу)
iOS
Интеграция iOS
Баннер iOS
Нативный блок iOS
Полноэкранный блок iOS
Видео с вознаграждением iOS
История изменений SDK iOS
Адаптеры для других медиаций iOS
Тестовый режим iOS
Нативный баннер iOS (доступен по запросу)
Unity
Интеграция Unity
Баннер Unity
Полноэкранный блок Unity
Видео с вознаграждением Unity
Тестовый режим Unity
Медиация ironSource
Медиация MAX
Пользовательские данные
Тестирование интеграции
Прямые сделки
Прямые сделки для поставщиков трафика
Маркетплейс прямых сделок
Создание и настройка прямой сделки
Редактирование сделки
Статистика и выгрузка отчётов по сделкам
Статистика в кабинете партнёра
Статистика по монетизации
Отчётность ОРД
Работа партнёров с ОРД VK
API Рекламной сети VK
Включение поддержки API
Получение статистики партнера по API
Management API
Документы партнёров
Юридические документы Рекламной сети VK
Правила Рекламной сети VK
Изменение документов партнера
Вывод заработанных средств для резидентов
Вывод заработанных средств для нерезидентов
Модерация площадок (сайты и приложения)
Реквизиты компании для партнёров-резидентов
Подключение ЭДО
Помощь
Глоссарий
Часто задаваемые вопросы по монетизации
Поддержка Рекламной сети VK
FAQ
Как связаться с поддержкой VK Рекламы
Как узнать ID кампании или объявления
Как перенести бюджет из ВКонтакте в VK Рекламу
Почему кампания не транслируется
Как заполнить информацию о компании или ИП
Часто задаваемые вопросы
VK Реклама – платформа для рекламы на проектах VK
ru

О компании

VK Реклама — единая платформа для продвижения бизнеса на проектах VK и в рекламной сети. Запускайте кампании в рекламном кабинете и взаимодействуйте с пользователями соцсетей, сайтов, мобильных приложений и медиапроектов, превращая их в ваших клиентов.

Регистрация

Клиентам

  • Обновления
  • Кейсы
  • Справка
  • Документы
  • Каталог таргетологов
  • Программа лояльности

Экспертам

  • Сертификация
  • Сообщество экспертов

Проекты VK

  • Рекламная сеть VK
  • Обучающая платформа VK Бизнес
  • VK AdBlogger

Обучение

  • Полезные материалы
  • Курсы
  • Мероприятия
© VK 2025 Все права защищены
Политика конфиденциальности
125167, г. Москва, Ленинградский проспект, д. 39, стр. 79
Android

Нативный баннер Android (доступен по запросу)

  • Справка
  • Кабинет партнёра
  • Документация по интеграции
  • Android
Читать 13 мин

myTarget SDK предоставляет возможность показывать рекламу в своем приложении, используя собственные визуальные компоненты. SDK загружает данные и предоставляет приложению модель рекламного объявления с определенными свойствами для заполнения визуального компонента, а также методы для подсчета показов и обработки кликов. SDK также предоставляет готовый настраиваемый визуальный компонент, который вы можете использовать в вашем приложении, вместо создания собственных.

Нативный баннер не поддерживает MediaAdView и поэтому не может отображать медиа-контент (видео, карточки, большую картинку).

Инициализация

Для показа нативных баннеров в вашем приложении необходимо создать экземпляр класса NativeBannerAd. Для создания экземпляра NativeBannerAd необходимо указать ваш slotId.

private NativeBannerAd ad;

private void initAd()
{
   // Включение режима отладки
   // MyTargetManager.setDebugMode(true); 


   // Создаем экземпляр NativeBannerAd
   ad = new NativeBannerAd(YOUR_SLOT_ID, this);
}

Загрузка рекламных объявлений

Для получения уведомлений (таких как успешная загрузка данных или ошибка загрузки, клик по рекламному объявлению) необходимо создать экземпляр NativeBannerAdListener и установить его в качестве слушателя событий, после чего можно запустить загрузку данных. 

private NativeBannerAd ad;

private void initAd()
{
   // Создаем экземпляр NativeBannerAd
   ad = new NativeBannerAd(YOUR_SLOT_ID, this);
    
   // Устанавливаем слушатель событий
   ad.setListener(new NativeBannerAd.NativeBannerAdListener()
   {
       @Override
       public void onLoad(NativeBanner banner, NativeBannerAd ad)
       {
       }

       @Override
       public void onNoAd(IAdLoadingError adLoadingError, NativeBannerAd ad)
       {
       }

       @Override
       public void onClick(NativeBannerAd ad)
       {
       }
 
       @Override
       public void onShow(NativeBannerAd ad)
       {
       }
   });
        
   // Запускаем загрузку данных
   ad.load();
}

Автозагрузка изображений

По-умолчанию загружаются и кэшируются все изображения рекламного баннера. Вы можете выключить автоматическую загрузку изображений, но необходимо учитывать, что на их загрузку потребуется дополнительное время, что создаст дополнительную задержку показа рекламы в вашем приложении.

ad.setCachePolicy(CachePolicy.NONE);
ad.load();

Допустимые значения: CachePolicy.ALL (по-умолчанию), CachePolicy.IMAGE, CachePolicy.NONE.

Если предзагрузка включена, то соответствующие изображения будут загружены и сохранены в кэш параллельно с загрузкой основных данных рекламного баннера.

Если предзагрузка изображений выключена, то они будут асинхронно и автоматически загружены в момент вызова метода registerView. Дополнительных действий не требуется.

Уведомления о загрузке ассетов

Есть возможность поставить слушатель для получения уведомлений об успешной загрузке файла изображения icon в случае автоматической загрузки.

ad.setMediaListener(new NativeBannerAdMediaListener() {
           @Override
           public void onIconLoad(@NonNull NativeBannerAd ad)
           {
               // уведомление об успешной загрузке иконки
           }
       });
ad.load();  

Показ рекламных объявлений

После успешной загрузки данных вы можете использовать свойства полученного экземпляра баннера для заполнения вашего визуального компонента. Доступность свойств зависит от типа рекламируемого объекта — для приложений и сайтов они различаются.

Для показа иконки следует использовать IconAdView, предоставляемый SDK.

Визуальные компоненты (как стандартные, так и собственные) следует положить внутрь биндера — объекта приложения, который реализует интерфейс NativeBannerAdViewBinder.

После создания биндера вы должны зарегистрировать его в экземпляре NativeAd, используя метод registerView. Если вы собираетесь использовать эти же визуальные компоненты для показа других рекламных объявлений, вам необходимо предварительно вызвать метод unregisterView у текущего экземпляра NativeAd до вызова registerView у другого экземпляра. Также необходимо изменить все текстовые или информационные тексты, чтобы отображалась информация из другого рекламного объявления. Обработка показов и кликов осуществляется автоматически, при этом приложение не должно блокировать или перехватывать пользовательские события на этом визуальном компоненте. Ниже описаны доступные свойства и приведены примеры заполнения визуальных компонентов для различных типов рекламируемых объектов.

@Override
void onLoad(NativeBanner banner, NativeBannerAd ad)
{
   // Пример заполнения визуального компонента
   Context context = YourActivity.this; // текущая активити

   // RelativeLayout взят для примера - это вьюшка-контейнер для баннера
   RelativeLayout adViewLayout = new RelativeLayout(context);

   TextView ageView = new TextView(context);
   // Возрастное ограничение
   ageView.setText(banner.getAgeRestrictions());

   TextView advertisingLabel = new TextView(context);
   // Текст метки "Реклама"
   advertisingLabel.setText(banner.getAdvertisingLabel());

   TextView titleView = new TextView(context);
   // Заголовок рекламного объявления
   titleView.setText(banner.getTitle());

   titleView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16.0f);
   titleView.setTypeface(null, Typeface.BOLD);
   titleView.setMaxLines(2);
   titleView.setEllipsize(TextUtils.TruncateAt.END);

   TextView domainView = new TextView(context);
   // Валидно только если (banner.navigationType == NavigationType.WEB)
   domainView.setText(banner.getDomain());

   IconAdView iconView = new IconAdView(context);
   // IconAdView - это вьюшка из SDK, он сам отобразит иконку внутри этой вьюшки
   // Дополнительные настройки не обязательны

   TextView disclaiberLabel = new TextView(context);
   disclaiberLabel.setText(banner.getDisclaimerInfo().text);

   Button ctaButton = new Button(context);
   // Текст действия для кнопки
   ctaButton.setText(banner.getCtaText());

   //
   // Размещаем вьюшки внутри RelativeLayout
   //

   RelativeLayout.LayoutParams adViewLp = new RelativeLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT);
   adViewLayout.setLayoutParams(adViewLp);

   ageView.setId(View.generateViewId());
   // ...

   RelativeLayout.LayoutParams ageViewLp = new RelativeLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
   ageViewLp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
   ageViewLp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);

   ageView.setLayoutParams(ageViewLp);
   adViewLayout.addView(ageView);

   //
   // Здесь остальной код для размещения вьюшек внутри adViewLayout
   // ...

   // Создаём биндер нативного баннера
   // Примечание: в этом примере создаются не все вьюшки.
   //             Это сделано, чтобы не усложнять пример.
   NativeBannerAdViewBinder binder = new NativeBannerAdViewBinder() {
       @NonNull @Override public View getAgeRestrictionView() { return ageView; }
       @NonNull @Override public View getAdvertisingView() { return advertisingLabel; }
       @NonNull @Override public IconAdView getIconView() { return iconView; }
       @Nullable @Override public View getTitleView() { return titleView; }
       @NonNull @Override public View getDomainView() { return domainView; }
       @Nullable @Override public View getCtaView() { return ctaButton; }
       @Nullable @Override public View getVotesView() { return null; }
       @Nullable @Override public View getStarsRatingView() { return null; }
       @NonNull @Override public View getDisclaimerView() { return disclaiberLabel; }
       @Nullable @Override public View getAdChoicesView() { return null; }
       @NonNull @Override public ViewGroup getRootAdBannerView() { return adViewLayout; }
   };

   // Регистрируем биндер с визуальными компонентами
   ad.registerView(binder);

   // Добавляем на экран.
   // mainLayout задаёт размеры и местоположение нативного баннера на экране приложения.
   mainLayout.addView(binder.getRootAdBannerView(), MATCH_PARENT, WRAP_CONTENT);
}

Пример нативного баннера для рекламы сайта
Пример нативного блока для рекламы приложения
1 из 2
Пример нативного баннера для рекламы сайта

Иконка AdChoices

myTarget SDK автоматически добавляет иконку AdChoices в каждый визуальный компонент. По умолчанию иконка добавляется в правый верхний угол визуального компонента, но вы вы можете выбрать предпочитаемый угол с помощью свойства adChoicesPlacement:

...
ad.setAdChoicesPlacement(AdChoicesPlacement.TOP_RIGHT);
ad.load(); 

Ручная настройка AdChoices

В случае, если необходимо установить свое изображение для AdChoices — нужно использовать класс NativeAdChoicesView и передать туда изображение с помощью методов setImageBitmap() или setImageDrawable().

...
NativeAdChoicesView myAdChoicesView = createMyAdChoicesView(); // создание своей NativeAdChoicesView
myAdChoicesView.setImageBitmap(bitmap);
myAdChoicesView.setImageDrawable(drawable);
...

В случае, если требуется ручное позиционирование AdChoicesView(выставление гравитации, маржинов) внутри своей View для показа нативной рекламы, требуется указать AdChoicesPlacement.MANUAL

...
ad.setAdChoicesPlacement(AdChoicesPlacement.MANUAL);
ad.load(); 

Кастомизация кнопки AdChoices

Разработчик может сам отрисовать кнопку адчойсов так как ему необходимо, но в таком случае для NativeBannerAd нужно задать свойство AdChoicesPlacement.DRAWING_MANUAL. Так же необходимо вызывать метод ad.handleAdChoicesClick(context) для обработки нажатия на адчойсы.

...
ad.setAdChoicesPlacement(AdChoicesPlacement.DRAWING_MANUAL);
ad.load();
...
customAdChoicesView.setOnClickListener(v->{
ad.handleAdChoicesClick(context)
})

Чтобы получить иконку адчойсов можно обратиться к объекту рекламы напрямую или использовать слушатель NativeAdChoicesListener, слушатель необходимо задавать перед загрузкой рекламы.

//получение иконки адчойсов через переменную
ad.getBanner().getAdChoicesIcon();
...
//получение иконки адчойсов через слушатель
ad.setAdChoicesListener(new NativeBannerAd.NativeBannerAdChoicesListener() {
   @Override
   public void onAdChoicesIconLoad(@Nullable ImageData imageData, boolean success, @NonNull NativeAd ad)
   {
       customAdChoicesView.setImageBitmap(imageData.getBitmap)
   }
});

Кастомизация отрисовки опций адчойсов

Для изменения дизайна отрисовки опций адчойсов необходимо в конструкторе NativeBannerAd передать объект реализующий интерфейс MenuFactory, который в свою очередь должен должен возвращать объект реализующий интерфейс Menu.

MenuFactory menuFactory = new MenuFactory()
   {
       @Override
       @NonNull public Menu createMenu()
       {
           return new Menu()
           {
               @Override
               public void setListener(@Nullable Listener listener)
               {
                   //слушатель, у которого нужно вызвать метод onActionClick(menuAction) при нажатии на тот элемент UI, который был отрисован с соответствующим заголовком menuAction
               }

               @Override
               public void addAction(@NonNull MenuAction menuAction)
               {
                   // это объект который содержит в себе заголовок и тип опции адчойсов, эти объекты нужно нужно использовать при отрисовке
               }

               @Override
               public void present(@NonNull Context context)
               {
                   // данный метод вызывается когда необходимо отобразить опции адчойсов с теми menuAction, которые были ранее получены из метода addAction()
               }

               @Override
               public void dismiss()
               {
                   // данный метод вызывается когда необходимо закрыть отрисовку опций адчойсов
               }
           };
       }
   };
...
ad = new NativeBannerAd(YOUR_SLOT_ID, menuFactory, this);
ad.load();

Управление закрытием рекламы

Для того, чтобы получать уведомления о закрытии рекламы и управлять закрытием рекламы необходимо передать объект, реализующий интерфейс NativeBannerAdChoicesOptionListener. Интерфейс содержит несколько методов.

  • boolean shouldCloseAutomatically() – говорит SDK о том, стоит ли автоматически закрывать рекламу. Если метод возвращает  true, то SDK автоматически скроет рекламу. Если false, то возможность скрыть предоставляется разработчику. 
  • onCloseAutomatically() уведомляет разработчика, что реклама была скрыта автоматически, средствами SDK. Таким образом, этот метод вызовется, только если shouldCloseAutomatically вернет true.
  • closeIfAutomaticallyDisabled() уведомляет разработчика, что ему нужно скрыть рекламу самостоятельно. Таким образом, этот метод вызовется, только если shouldCloseAutomatically вернет false.

NativeBannerAd.NativeBannerAdChoicesOptionListener adChoicesOptionListener = new NativeBannerAd.NativeBannerAdChoicesOptionListener()
{
   @Override
   public boolean shouldCloseAutomatically()
   {
       return false;
   }

   @Override
   public void onCloseAutomatically(@NonNull NativeBannerAd ad)
   {

   }

   @Override
   public void closeIfAutomaticallyDisabled(@NonNull NativeBannerAd ad)
   {

   }
};
        
ad.setAdChoicesOptionListener(adChoicesOptionListener);

Настройка кликабельной области

В приведенном выше примере визуальный компонент регистрируется с помощью метода registerView(NativeBannerAdViewBinder binder). В этом случае вся область визуального компонента является кликабельной. MyTarget SDK предоставляет возможность указать конкретные визуальные компоненты, клики на которые будут отслеживаться. Для этого воспользуйтесь методом registerView(NativeBannerAdViewBinder binder, List<View> clickableViews):

@Override
void onLoad(NativeBanner banner, NativeBannerAd ad)
{
   ...
   ...
   ...

   // Создаем массив кликабельных визуальных компонентов, заголовка и кнопки призыва к действию
   List<View> clickableViews = List.of(titleView, ctaButton);

   // Регистрируем биндер с вьюшками, с кликабельными заголовком и кнопкой призыва к действию
   ad.registerView(binder, clickableViews);

   // Добавляем на экран.
   // mainLayout задаёт размеры и местоположение нативного баннера на экране приложения.
   mainLayout.addView(binder.getRootAdBannerView(), MATCH_PARENT, WRAP_CONTENT);
}

Использование готового визуального компонента

MyTarget SDK предоставляет готовый настраиваемый визуальный компонент, внешний вид которого вы можете настраивать под дизайн своего приложения.

Ниже приведены примеры и описаны доступные для настройки свойства.

NativeBannerAdView

@Override
void onLoad(NativeBanner banner, NativeBannerAd ad)
{
   // Создаем и инициализируем визуальный компонент
   NativeBannerAdView nativeBannerAdView = NativeViewsFactory.getNativeBannerAdView(YourActivity.this);
   nativeBannerAdView.setupView(banner);

   // Доступные для настройки внутренние визуальные компоненты
   TextView advLabelView = nativeBannerAdView.getAdvertisingTextView();
   TextView ageRestrictionView = nativeBannerAdView.getAgeRestrictionTextView();
   TextView disclaimerView = nativeBannerAdView.getDisclaimerTextView();
   TextView titleView = nativeBannerAdView.getTitleTextView();
   View ctaBtn = nativeBannerAdView.getCtaButtonView();
   TextView votesView = nativeBannerAdView.getVotesTextView();
   StarsRatingView starsRatingView  = nativeBannerAdView.getStarsRatingView();
   TextView domainView = nativeBannerAdView.getDomainTextView();
   IconAdView iconView = nativeBannerAdView.getIconView();

   // Получаем биндер
   NativeBannerAdViewBinder binder = nativeBannerAdView.getNativeBannerAdViewBinder();

   // Регистрируем визуальный компонент
   ad.registerView(binder);

   // Добавляем на экран.
   // mainLayout задаёт размеры и местоположение нативного баннера на экране приложения.
   mainLayout.addView(binder.getRootAdBannerView(), MATCH_PARENT, WRAP_CONTENT);
}

Пример нативного баннера для рекламы сайта
Пример нативного блока для рекламы приложения
1 из 2
Пример нативного баннера для рекламы сайта

Загрузка нескольких баннеров

MyTarget SDK предоставляет класс NativeBannerAdLoader, который дает возможность загрузить от 1 до 20 баннеров одним запросом. Для NativeBannerAdLoader вы можете настроить все те же параметры, которые доступны для настройки в NativeBannerAd (например, параметры пола и возраста пользователя, автозагрузку изображений и видео). myTarget SDK не гарантирует, что будет загружено количество баннеров, указанное в параметре COUNT — этот параметр указывает на максимальное количество баннеров, которое вы хотите получить.

// Включение режима отладки
// MyTargetManager.setDebugMode(true); 

// Создаем NativeBannerAdLoader
NativeBannerAdLoader nativeBannerAdLoader = NativeBannerAdLoader.newLoader(YOUR_SLOT_ID, COUNT, this);

// Устанавливаем OnLoad коллбек и загружаем баннеры
nativeBannerAdLoader.setOnLoad(new OnLoad()
{
  @Override
  public void onLoad(@NonNull List<NativeBannerAd> ads)
  {
     for (NativeBannerAd ad : ads)
     {
       // Устанавливаем слушатель событий
       ad.setListener(nativeBannerAdListener);
        
       NativeBanner banner = ad.getBanner();
       // Код, аналогичный методу onLoad интерфейса NativeAdListener
     }
  }
}).load();

Полученный массив будет содержать от 0 до COUNT объектов NativeBannerAd - каждый из них содержит уже загруженный NativeBanner и с каждым из них надо работать так же, как описано в этой документации выше, начиная с вызова метода onLoad.

Оглавление

  1. Инициализация
  2. Загрузка рекламных объявлений
  3. Автозагрузка изображений
  4. Уведомления о загрузке ассетов
  5. Иконка AdChoices
  6. Ручная настройка AdChoices
  7. Кастомизация кнопки AdChoices
  8. Кастомизация отрисовки опций адчойсов
  9. Управление закрытием рекламы
  10. Настройка кликабельной области
  11. Использование готового визуального компонента
  12. NativeBannerAdView
  13. Загрузка нескольких баннеров