Перейти к основному содержимому
Версия: 3.4.0-beta.2

Реклама С Наградой За Просмотр

Реклама с наградой за просмотр - инициируемый пользователем тип рекламы. Позволяет конечным пользователям получить внутриигровые награды в обмен на просмотр видеорекламы.

Вы можете использовать наше демо приложение в качестве примера по интеграции.

Демо приложение (Бета)


Ручное Кэширование

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

  1. Для отключения автоматического кеширования для видео с вознаграждением используйте следующий код перед инициализацией Appodeal SDK:
Appodeal.SetAutoCache(AppodealAdType.RewardedVideo, false);
  1. Для кеширования видео с вознаграждением вызовите следующий метод:
Appodeal.Cache(AppodealAdType.RewardedVideo);

Проверка Загрузки

Вы можете проверить статус загрузки перед показом. Этот метод возвращает bool значение, указывающее, загружено ли рекламное объявление.

Appodeal.IsLoaded(AppodealAdType.RewardedVideo);
Проверка Статуса Загрузки

Мы рекомендуем всегда проверять загружено ли видео с вознаграждением, прежде чем пытаться его показать.

Пример:

if(Appodeal.IsLoaded(AppodealAdType.RewardedVideo)) {
Appodeal.Show(AppodealShowStyle.RewardedVideo);
}

Отображение

Для отображения видео с вознаграждением, используйте следующий код:

Appodeal.Show(AppodealShowStyle.RewardedVideo);

Методы Обратного Вызова

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

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

AppodealCallbacks.RewardedVideo.OnLoaded += (sender, args) => { };

Ниже перечислены все существующие ивенты для видео с вознаграждением:

public void SomeMethod()
{
AppodealCallbacks.RewardedVideo.OnLoaded += OnRewardedVideoLoaded;
AppodealCallbacks.RewardedVideo.OnFailedToLoad += OnRewardedVideoFailedToLoad;
AppodealCallbacks.RewardedVideo.OnShown += OnRewardedVideoShown;
AppodealCallbacks.RewardedVideo.OnShowFailed += OnRewardedVideoShowFailed;
AppodealCallbacks.RewardedVideo.OnClosed += OnRewardedVideoClosed;
AppodealCallbacks.RewardedVideo.OnFinished += OnRewardedVideoFinished;
AppodealCallbacks.RewardedVideo.OnClicked += OnRewardedVideoClicked;
AppodealCallbacks.RewardedVideo.OnExpired += OnRewardedVideoExpired;
}

#region RewardedVideoAd Callbacks

//Called when rewarded video was loaded (precache flag shows if the loaded ad is precache).
private void OnRewardedVideoLoaded(object sender, AdLoadedEventArgs e)
{
Debug.Log($"[APDUnity] [Callback] OnRewardedVideoLoaded(bool isPrecache:{e.IsPrecache})");
}

// Called when rewarded video failed to load
private void OnRewardedVideoFailedToLoad(object sender, EventArgs e)
{
Debug.Log("[APDUnity] [Callback] OnRewardedVideoFailedToLoad()");
}

// Called when rewarded video was loaded, but cannot be shown (internal network errors, placement settings, etc.)
private void OnRewardedVideoShowFailed(object sender, EventArgs e)
{
Debug.Log("[APDUnity] [Callback] OnRewardedVideoShowFailed()");
}

// Called when rewarded video is shown
private void OnRewardedVideoShown(object sender, EventArgs e)
{
Debug.Log("[APDUnity] [Callback] OnRewardedVideoShown()");
}

// Called when rewarded video is closed
private void OnRewardedVideoClosed(object sender, RewardedVideoClosedEventArgs e)
{
Debug.Log($"[APDUnity] [Callback] OnRewardedVideoClosed(bool finished:{e.Finished})");
}

// Called when rewarded video is viewed until the end
private void OnRewardedVideoFinished(object sender, RewardedVideoFinishedEventArgs e)
{
Debug.Log($"[APDUnity] [Callback] OnRewardedVideoFinished(double amount:{e.Amount}, string name:{e.Currency})");
}

// Called when rewarded video is clicked
private void OnRewardedVideoClicked(object sender, EventArgs e)
{
Debug.Log("[APDUnity] [Callback] OnRewardedVideoClicked()");
}

//Called when rewarded video is expired and can not be shown
private void OnRewardedVideoExpired(object sender, EventArgs e)
{
Debug.Log("[APDUnity] [Callback] OnRewardedVideoExpired()");
}

#endregion
Главный Поток Unity

Все методы обратного вызова вызываются в главных потоках Android/iOS, которые не совпадают с главным потоком Unity. Если вы хотите обрабатывать методы обратного вызова в главном потоке Unity, следуйте этой инструкции.


Плейсменты

Appodeal SDK позволяет помечать каждый показ указанным плейсментом. Для использования плейсментов вам необходимо сначала их создать в Appodeal Dashboard. Здесь можно найти больше информации о плейсментах.

Чтобы показывать рекламу с указанием плейсмента, используйте следующий метод:

Appodeal.Show(AppodealShowStyle.RewardedVideo, "placementName");

Если загруженное объявление не может быть показано для определенного плейсмента, ничего не будет показано. Если автоматическое кеширование включено, SDK начнет кэшировать другое объявление, что может повлиять на display rate. Чтобы сохранить загруженное объявление для использования в будущем (например, для другого места размещения), перед вызовом метода show проверьте, можно ли показывать объявление:

if(Appodeal.CanShow(AppodealAdType.RewardedVideo, "placementName")) {
Appodeal.Show(AppodealShowStyle.RewardedVideo, "placementName");
}

Вы можете настроить логику показа для каждого плейсмента.

Если у вас нет плейсментов, или вы вызовете метод Appodeal.Show() с плейсментом, которого не существует, показ будет помечен с использованием плейсмента default, и будут применены его настройки.

Настройки плейсментов влияют ТОЛЬКО на показ рекламы, но не на загрузку или кеширование.

Методы Обратного Вызова Server-to-Server

Для обеспечения безопасности вашей внутриигровой экономики мы предлагаем использовать методы обратного вызова S2S. Для проверки каждой награды на вашем сервере настройте URL обратного вызова, который будет получать информацию о вознаграждении. Appodeal будет передавать вам информацию о пользователе для проверки и регулировки баланса пользователя.

  1. Создайте URL на вашем сервере, который будет получать информацию о вознаграждении.

  2. Укажите созданный URL и ключ безопасности в настройках вашего приложения на панели управления.

  3. Обратный вызов о вознаграждениях будет отсыласться на ваш URL при помощи GET-запроса с двумя параметрами:

{http:/example.com/reward}?data1={data1}&data2={data2}
  1. Ваш URL должен расшифровать данные и проверить их.

  2. Проверьте impression_id на уникальность и сохраните его в системе, чтобы предотвратить дублирование транзакций.

Для установки идентификатора пользователя используйте следущюий метод до инициализации SDK:

Appodeal.SetUserId("user#123");

Мы предлагаем примеры реализации на Go, PHP, Ruby, Java, Node.js, Python 3 и C# для расшифровки данных. Если вам нужны примеры на других языках, пожалуйста, свяжитесь со службой поддержки.

Пример на PHP: reward.php.

Пример на Ruby: reward.rb.

Пример на Java: reward.java.

Пример на Node.js: reward.js.

Пример на Python 3: reward.py.

Пример на C#: reward.cs.

Пример на Go: reward.go.


Получение Награды Для Плейсмента

Этот метод возвращает заданную в настройках приложения награду для указанного плейсмента в виде KeyValuePair объекта с типом награды и её количеством.

Appodeal.GetRewardParameters("placementName");

Получение Прогнозируемого eCPM

Этот метод возвращает ожидаемую эффективную цену за тысячу показов для закешированного объявления. Сумма рассчитывается на основе исторических данных для текущего рекламного блока.

Appodeal.GetPredictedEcpm(AppodealAdType.RewardedVideo);

Отключение Звука В Видео Рекламе

Этот метод поддерживается только на Android платформе

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

Appodeal.MuteVideosIfCallsMuted(true);