Интеграция банерной рекламы

Общие сведения

Vungle Banner в настоящее время находится на стадии бета-тестирования. Чтобы гарантировать успешный запуск, запросите доступ непосредственно у своего персонального менеджера.

Vungle поддреживает баннерную рекламу, начиная с SDK Vungle версии 6.5.1. Реклама MREC и баннерная реклама требует API версии 16 или выше.

Как и реклама MREC, баннерные рекламные ролики являются прямоугольными окнами, которые могут быть расположены в любом месте приложения, обычно вверху или внизу экрана, позволяя пользователю продолжать взаимодействовать с приложением, пока воспроизводится реклама. Размер контейнера баннера может быть 320x50, 300x50 или 728x90 (для планшетов).

Размер баннера Размеры

AdConfig.AdSize.BANNER

320x50

AdConfig.AdSize.BANNER_SHORT

300x50

AdConfig.AdSize.BANNER_LEADERBOARD

728x90 (для планшетов)

Шаг 1. Выполните общую интеграцию

Для выполнения интеграции баннерной рекламы в свое приложение для Android или Amazon начните с выполнения инструкций из статьи об общей интеграции. Настоящая статья содержит дополнительную информацию, и подразумевается, что общая интеграция уже выполнена.

Шаг 2. Реализация прослушивателей событий

Вы можете использовать универсальные обратные вызовы путем реализации LoadAdCallback для событий загрузки рекламы и PlayAdCallback для событий воспроизведения рекламы или можете использовать встроенные обратные вызовы при вызове loadAd и playAd.

Реализация LoadAdCallback

6.5.0 & выше устаревшей версии
private final LoadAdCallback vungleLoadAdCallback = new LoadAdCallback() { 
  @Override
  public void onAdLoad(String id) { 
    // Ad has been successfully loaded for the placement
  } 

  @Override 
  public void onError(String id, VungleException exception) { 
    // Ad has failed to load for the placement
  }
};
Переопределяемые методы Описание
onAdLoad(String id) Вызывается, когда реклама успешно загружена и должна быть воспроизведена для размещения
onError(String id) Вызывается, когда при попытке воспроизведения рекламы возникает ошибка. Вы можете просмотреть сообщение об ошибке из getLocalizedMessage VungleException и использовать getExceptionCode для отладки.

Реализация PlayAdCallback

6.6.0 & выше устаревшей версии
private final PlayAdCallback vunglePlayAdCallback = new PlayAdCallback() {
  @Override
  public void onAdStart(String id) { 
    // Ad experience started
  }

  @Override
  public void onAdEnd(String id) {
    // Ad experience ended
  }

  @Override
  public void onAdClick(String id) {
    // User clicked on ad
} @Override public void onAdRewarded(String id) { // User earned reward for watching an ad } @Override public void onAdLeftApplication(String id) { // User has left app during an ad experience } @Override public void onError(String id, VungleException exception) { // Ad failed to play } };
Переопределяемые методы Описание
onAdStart(String id) Вызывается при успешном запуске и отображении рекламы на устройстве.
onAdEnd(String id) Вызывается после завершения показа рекламы, непосредственно перед возвращением управления основному приложению.
onAdClick(String id) Вызывается, когда пользователь нажимает на видеорекламу или кнопку загрузки.
onAdRewarded(String id) Вызывается, когда пользователь просмотрел 80% видео с вознаграждением и должен его получить. Здесь должно происходить вознаграждение пользователя, и оно будет активироваться только для размещения с вознаграждением.
onAdLeftApplication(String id) Вызывается, когда пользователь выходит из приложения до завершения показа рекламы, например при открытии страницы магазина в рекламе.
onAdError(String id, VungleException exception) Вызывается, когда при попытке воспроизведения рекламы возникает ошибка. Вы можете просмотреть сообщение об ошибке из getLocalizedMessage VungleException и использовать getExceptionCode для отладки.

Шаг 3. Загрузка, отображение и закрытие баннерной рекламы

Загрузка баннерной рекламы

Загрузка баннерной рекламы выполняется иначе, чем в других форматах рекламы. Для загрузки, воспроизведения и проверки наличия рекламы используется специальный API Banners. Вы должны указать размер баннера, который нужно загрузить, а SDK будет автоматически обновлять его через промежутки времени, заданные на панели инструментов. Вы также должны настроить размещение для поддержки канала баннеров, поэтому обратитесь к своему персональному менеджеру Vungle, чтобы включить баннерную рекламу для размещения.

  • Загрузите баннерную рекламу, вызвав метод loadBanner:
    Banners.loadBanner("BANNER_ID", AdConfig.AdSize.BANNER, vungleLoadAdCallback);
  • Проверьте наличие баннерной рекламы, вызвав метод canPlayAd:
    Banners.canPlayAd(ad.placementReferenceId, AdConfig.AdSize.BANNER);

Отображение баннерной рекламы

Так как размер окна просмотра фиксированный, необходимо указать контейнер, используемый для отображения баннерной рекламы, который должен иметь один из поддерживаемых размеров: 320x50, 300x50 или 728x90 (для планшетов). Окно просмотра можно разместить в любом месте экрана. Этот контейнер — это LayOut. Его размер должен быть равен размеру используемого вами баннера или больше. Вы можете разместить данный LayOut в любом месте экрана. Затем вы должны передать размер используемого вами баннера через API Banners.

Передайте этот объект при вызове Banners.loadBanner, чтобы указать отображаемый размер, и используйте Banners.getBanner, чтобы получить рекламный объект Banners. В конце вызовите метод addView, чтобы связать контейнер с баннерной рекламой.

private RelativeLayout bannerContainer = findViewById(...);
// Check for banner ad availability and display
if (Banners.canPlayAd("BANNER_ID", AdConfig.AdSize.BANNER)) {
  VungleBanner vungleBanner = Banners.getBanner("BANNER_ID", AdConfig.AdSize.BANNER, vunglePlayAdCallback);
  bannerContainer.addView(vungleBanner);
}

Закрытие баннерной рекламы

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

vungleBanner.destroyAd();

Шаг 4. Использование API VungleBanner для расширенного управления (необязательно)

В большинстве случаев описанной выше интеграции достаточно, и VungleBanner является управляемым. Однако, если окно просмотра VungleBanner находится внутри списка или RecyclerView, управляемый VungleBanner будет работать неправильно. Если пользователь прокрутит рекламу за пределы экрана и назад, она закончится и исчезнет. Для таких случаев мы предоставляем расширенный API для более точного контроля VungleBanner.

VungleBanner API класса

Эти API предоставляют разработчикам точный контроль VungleBanner при различных событиях жизненного цикла в приложении разработчика. В большинстве случаев использования разработчикам не нужно вызывать эти методы. Достаточно просто добавить VungleBanner в родительское окно просмотра.

Однако в редких случаях может либо произойти перезапуск окна просмотра (например, RecyclerView, ListView и пр.), либо нам понадобится контролировать видимость вручную (в некоторых старых устройствах Android WebView не приостанавливается автоматически при выходе за пределы экрана).

Имя Функция Примечания
disableLifeCycleManagement(boolean disabled) Вызывается для отключения автоматического управления баннером Чтобы renderAd и setAdVisibility работали, необходимо установить значение true
renderAd* Отображает рекламу, если ее не видно Также может загружать новую рекламу
setAdVisibility* Сообщает контейнеру окна просмотра, когда баннер виден на экране Приостанавливает и возобновляет воспроизведение баннера
destroyAd Отправляет вызов на удаление, когда баннер больше не требуется; контейнер окна просмотра больше не используется Освобождает ресурсы баннера
finishAd* Останавливает текущую рекламу, отправляет отчет и разрешает после этого загрузку следующей рекламы (применимо только для определенной интеграции в RecyclerView или ListView) Освобождает ресурсы баннера

*Прежде чем использовать этот API, вы должны вызвать vungleBannerAd.disableLifeCycleManagement(true).

Управляемые и неуправляемые окна просмотра VungleBanner

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

Когда окно просмотра VungleBanner находится внутри ListView или RecyclerView, управляемый VungleBanner будет работать неправильно. В момент, когда пользователь прокрутит рекламу за пределы экрана и назад, она закончится и исчезнет.

BannerFlowChart.png

Для таких случаев мы добавили API disableLifeCycleManagement(boolean disable), чтобы разработчики могли управлять жизненным циклом VungleBanner вручную.

Прежде чем добавить VungleBanner в окно просмотра или привязать окно просмотра при установке:

vungleBannerAd.disableLifeCycleManagement(boolean disabled)

Необходимо вызвать:

  • VungleBanner.renderAd() — когда окно просмотра привязано
  • VungleBanner.setAdVisibility(true|false) — когда реклама перезапускается или больше не отображается
  • VungleBanner.destroyAd() — когда объект VungleBanner больше не требуется

Шаг 5. Настройка баннерной рекламы (необязательно)

Вы можете настроить отдельные воспроизводимые вами рекламные ролики, указав в playAd новый объект adConfig. Когда объект AdConfig имеет неопределенное значение, реклама воспроизводится с параметрами конфигурации по умолчанию; если значение определено, его настройки переопределяют настройки установщика AdConfig. Ниже приводится пример использования AdConfig:

Vungle.playAd(placementReferenceID, adConfig, vunglePlayAdCallback);

В приведенном выше примере используется объект adConfig, который содержит настраиваемые параметры конфигурации. Настройте объект AdConfig следующим образом:

AdConfig adConfig = new AdConfig();
adConfig.setAdOrientation(AdConfig.AUTO_ROTATE);
adConfig.setMuted(true);
Vungle.playAd(placementReferenceID, adConfig, vunglePlayAdCallback);

В таблице ниже перечислены доступные параметры AdConfig баннерной рекламы:

Параметр Описание

setMuted

"false", если видео должно начинаться с настройками звука, соответствующими настройкам вашего внешнего приложения; "true", если видео всегда должно начинаться без звука

setOrdinal

принимает целое значение порядкового номера для отслеживания количества рекламных роликов, воспроизведенных за один сеанс

Примечание. Вы можете использовать один и тот же объект AdConfig для нескольких рекламных роликов.

Рекомендации

  1. Прежде чем пытаться показать баннерную рекламу, всегда проверяйте, завершено ли родительское действие, перед привязкой VungleBanner к окну просмотра.
    if (activity != null && activity.isFinishing()) {
      return;
    }
  2. Не изменяйте LayoutParams VungleBanner. Это может негативно повлиять на отображение баннера, и вашу рекламу может быть не видно.
  3. Не помещайте рекламу в контейнер размером меньше запрашиваемой рекламы. Если вы запрашиваете стандартный баннер (320x50), убедитесь, что размер родительского контейнера составляет не менее 320dp x 50dp.

Пример кода для расширенной интеграции

VungleBannerAdAdapter.java

Questions?

Need further assistance, feel free to reach out to us, we’re here to help!

Была ли эта статья полезной?