Общие сведения
Реклама внутри передачи
Реклама внутри передачи – это полноэкранная реклама, которая закрывает интерфейс вашего приложения. Как правило, она отображается во время переходных процессов вашего приложения, например, между действиями или во время паузы между уровнями в игре. Некоторая реклама внутри передачи является рекламой с вознаграждением.
Реклама с вознаграждением
Реклама с вознаграждением очень привлекательна для пользователей, поскольку она предлагает награду за просмотр или взаимодействие с рекламой. Вознаграждение, как правило, предоставляется внутри вашего приложения, например, дополнительные жизни в игре, виртуальная валюта или подсказка в головоломке (тип и размер вознаграждения определяете вы). Отображаемая во время естественных перерывов активности в приложении, рекламные видеоролики с вознаграждением обеспечивают высокий доход, особенно если сделать ее просмотр обязательным в соответствии с нашими рекомендациями.
Обратите внимание, что реклама с вознаграждением в некоторых случаях называется рекламой с поощрением; оба термина всегда обозначают один и тот же тип рекламы. Хотя мы предпочитаем термин "реклама с вознаграждением", в коде SDK и в нашем API отчетности мы используем термин "реклама с поощрением".
Существует два способа интеграции рекламы с вознаграждением: награды внутри приложения (рекомендуемый способ, описан ниже) или межсерверные вызовы (см. нашу статью на эту тему). При использовании наград внутри приложения вы можете вознаграждать пользователей, просмотревших рекламу или нажавших кнопку загрузки, непосредственно в своем приложении. Главным преимуществом этого подхода является простота реализации. Если вы ищете быстрое решение и не беспокоитесь об атаках повторением, этот вариант вам подойдет.
В Vungle теперь предлагаются различные форматы рекламы, реализуемые с помощью рекламы с динамическим шаблоном. В отличие от традиционного формата рекламы, состоящего из воспроизведения видеоролика после которого выводится последний кадр, мы предлагаем шаблоны, где кнопка призыва к действию (CTA, call-to-action) доступна во время воспроизведения видео. Вознаграждение получат и пользователи, просмотревшие видео, и пользователи, нажавшие эту кнопку.
Шаг 1. Общая интеграция
Для выполнения интеграции рекламы внутри передачи и рекламы с вознаграждением в свое приложение для Android или Amazon начните с выполнения инструкций из статьи об общей интеграции. Настоящая статья содержит дополнительную информацию, и подразумевается, что общая интеграция уже выполнена.
Шаг 2. Реализация прослушивателей событий
Вы можете использовать универсальные обратные вызовы путем реализации LoadAdCallback
для событий загрузки рекламы и PlayAdCallback
для событий воспроизведения рекламы или можете использовать встроенные обратные вызовы при вызове loadAd
и playAd
.
LoadAdCallback
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
}
};
// 6.4.x & below
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, Throwable throwable) {
// Ad has failed to load for the placement
}
};
Переопределяемые методы | Описание |
---|---|
onAdLoad(String id) |
Вызывается, когда реклама успешно загружена и должна быть воспроизведена для размещения |
onError(String id) |
Вызывается, когда при попытке воспроизведения рекламы возникает ошибка. Вы можете просмотреть сообщение об ошибке из getLocalizedMessage VungleException и использовать getExceptionCode для отладки. |
PlayAdCallback
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
}
};
// 6.5.x & below
private final PlayAdCallback vunglePlayAdCallback = new PlayAdCallback() {
@Override
public void onAdStart(String placementReferenceId) {
// Ad experience started
}
// Deprecated
@Override
public void onAdEnd(String placementReferenceId, boolean completed, boolean isCTAClicked) {
// Invoked when the ad experience is completed
// isCTAClicked flag indicates whether CTA download button has been triggered
// completed flag will indicate whether user has watched 80% of video or longer.
}
@Override
public void onError(String placementReferenceId, 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. Загрузка и воспроизведение рекламы
Загрузка рекламы для размещения
В LoadAdCallback
будет отправлено сообщение о состоянии загрузки вызова, которому он был назначен. SDK только ссылается на этот обратный вызов и нигде его не сохраняет. Ответственность за правильное управление обратным вызовом лежит на вызывающей стороне.
public static void loadAd(@NonNull final String id, @Nullable LoadAdCallback callback)
// Load Ad Implementation if (Vungle.isInitialized()) { Vungle.loadAd("PLACEMENT_ID", new LoadAdCallback() { @Override public void onAdLoad(String placementReferenceId) { } @Override public void onError(String placementReferenceId, VungleException exception) { } }); }
Проверка наличия рекламы для размещения
Используйте статический метод canPlayAdmethod
для проверки наличия рекламы для данного размещения перед вызовом метода playAd
.
public static boolean canPlayAd(@NonNull String id)
Воспроизведение рекламы
Для воспроизведения рекламы вызовите метод playAd
с контрольным идентификатором размещения, необязательным AdConfig
(нулевое значение, если не используется) и прослушивателем событий PlayAdCallback
, в который будет отправляться сообщение об успехе или ошибках во время воспроизведения рекламы.
public static void playAd(@NonNull final String id, final AdConfig settings, @Nullable final PlayAdCallback listener)
Всегда проверяйте наличие рекламы, вызывая метод canPlayAd
, перед вызовом метода playAd
. Так как реклама не будет отображаться должным образом при многократном вызове playAd
с короткими интервалами, необходимо также убедиться, что вы получили обратный вызов onAdEnd
или onError
из исходного вызова playAd
, прежде чем выдавать дополнительный playAd
.
if (Vungle.canPlayAd("PLACEMENT_ID")) { Vungle.playAd("PLACEMENT_ID", null, new PlayAdCallback() { @Override public void onAdStart(String placementReferenceId) { } @Override public void onAdEnd(String placementReferenceId, boolean completed, boolean isCTAClicked) { } @Override public void onError(String placementReferenceId, VungleException exception) { } }); }
Шаг 4. Настройка всех полноэкранных рекламных роликов (необязательно)
Вы можете настроить отдельные воспроизводимые вами рекламные ролики, указав в 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
:
Параметр |
Описание |
|
"true", если кнопка "Назад" должна быть активной до появления кнопки закрытия рекламы; "false" в других случаях |
|
AdConfig.AUTO_ROTATE если рекламный видеоролик должен поворачиваться автоматически; в противном случае AdConfig.LANDSCAPE или AdConfig.PORTRAIT , чтобы придерживаться ориентации рекламного видеоролика |
|
"false", если видео должно начинаться с настройками звука, соответствующими настройкам вашего внешнего приложения; "true", если видео всегда должно начинаться без звука |
|
принимает целое значение порядкового номера для отслеживания количества рекламных роликов, воспроизведенных за один сеанс |
Примечание. Вы можете использовать один и тот же объект AdConfig
для нескольких рекламных роликов.
Шаг 5. Настройка рекламы с вознаграждением (необязательно)
Всплывающее окно сообщения
Всплывающее окно сообщения для рекламы с вознаграждением настраивается с помощью метода setIncentivizedFields
.
public static void setIncentivizedFields(@Nullable String userID, @Nullable String title, @Nullable String body, @Nullable String keepWatching, @Nullable String close)
Рекомендации по вознаграждению
Стандарта вознаграждений пользователей не существует. Ваше решение зависит от экономики вашей игры. Разработчик должен вознаграждать пользователя ровно настолько, чтобы вариант просмотра видео был привлекательным, но не настолько, чтобы вознаграждение заменяло покупку внутреннего продукта приложения. Также для видео с вознаграждением важно установить ограничение на количество просмотров за день — оно ограничивает количество вознаграждений для одного пользователя.
Вот несколько вопросов, которые вы должны задать при выборе правильного размера вознаграждения:
-
Что более ценно для пользователя: мягкая или твердая валюта?
Мягкая валюта обойдется вам дешевле, однако пользователи могут быть более склонны к просмотру видео в замен на предмет, который они могут сразу же использовать. Вы также можете использовать видео с вознаграждением как способ познакомить пользователей с новыми продуктами, побуждая их позже приобрести внутренний продукт приложения. -
Насколько заманчиво вознаграждение для пользователя?
Наградой должно быть что-то, в чем пользователь действительно нуждается или что он хочет, но что нелегко получить. -
Насколько вознаграждение сопоставимо с наиболее распространенным внутренним продуктом приложения?
Вознаграждение должно быть шагом к получению этого внутреннего продукта приложения или что-то, что пользователь хочет, но никогда не покупает. -
Насколько вознаграждение сопоставимо со средним результатом пользователя за игру?
Если пользователь получает вознаграждение такого же размера, играя всего на одном уровне, он может посчитать, что вознаграждение не стоит 15 секунд его времени. -
Следует ли ограничивать количество вознаграждений для одного пользователя в день?
Да. Установка ограничения на количество просмотров за день может помочь вам контролировать количество бесплатных предметов/монет, которые может заработать пользователь.
Наша команда по работе с клиентами также готова помочь. Пишите нам по адресу электронной почты monetize@vungle.com.