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

Реклама с наградой за просмотр

Рекламный формат, в котором пользователи получают награду, если досмотрели видео до конца.

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

Демо приложение

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

По умолчанию включен автоматический режим загрузки рекламных креативов: Appodeal SDK начинает загрузку полноэкранной рекламы сразу после инициализации SDK.

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

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

Appodeal.setAutocache(false, types: .rewardedVideo)

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

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

Appodeal.isReadyForShow(with: .rewardedVideo)

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

Отображение

Appodeal.showAd(.rewardedVideo, rootViewController: self)

Если вам необходимо больше контроля над Видео с наградой за просмотр, используйте ручное кеширование. Ручное кеширование для Видео может быть полезным для увеличения display rate или уменьшения количества загружаемой рекламы, если вы используете несколько рекламных типов в вашем приложении. Для загрузки Видео с наградой за просмотр используйте:

Appodeal.cacheAd(.rewardedVideo)

Более подробную информацию о ручном кешировании вы можете найти в нашем FAQ.

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

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

// set delegate
Appodeal.setRewardedVideoDelegate(self)

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

Теперь вы можете использовать следующие методы обратного вызова:

extension YourViewController: AppodealRewardedVideoDelegate {
// Method called when rewarded video loads
//
// - Parameter precache: If precache is YES it means that precached ad loaded
func rewardedVideoDidLoadAdIsPrecache(_ precache: Bool) {

}

// Method called if rewarded video mediation failed
func rewardedVideoDidFailToLoadAd() {

}

// Method called if rewarded mediation was successful, but ready ad network can't show ad or
// ad presentation was too frequent according to your placement settings
//
// - Parameter error: Error object that indicates error reason
func rewardedVideoDidFailToPresentWithError(_ error: Error) {

}

// Method called after rewarded video start displaying
func rewardedVideoDidPresent() {

}

// Method called before rewarded video leaves screen
//
// - Parameter wasFullyWatched: boolean flag indicated that user watch video fully
func rewardedVideoWillDismissAndWasFullyWatched(_ wasFullyWatched: Bool) {

}

// Method called after fully watch of video
//
// - Warning: After call this method rewarded video can stay on screen and show postbanner
// - Parameters:
// - rewardAmount: Amount of app curency tuned via Appodeal Dashboard
// - rewardName: Name of app currency tuned via Appodeal Dashboard
func rewardedVideoDidFinish(_ rewardAmount: Float, name rewardName: String?) {

}

// Method is called when rewarded video is clicked
func rewardedVideoDidClick() {

}

// Method called when rewardedVideo did expire and can not be shown
func rewardedVideoDidExpired() {

}
}

подсказка

Все функции обратного вызова вызываются в главном потоке.

Плейсменты

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

Appodeal.showAd(.rewardedVideo, forPlacement: placement, rootViewController: self)

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

Appodeal.canShow(.rewardedVideo, forPlacement: placement)

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

Если в приложении нет настроенных плейсментов, или вы пробуете показать рекламу для плейсмента, который не существует в настройках вашего приложения, каждый показ будет записан в плейсмент с именем '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 на уникальность и сохраните его в своей системе, чтобы предотвратить дублирование транзакций.

    Для установки идентификатора пользователя используйте Appodeal.getUserSettings(this).setUserId("User#123") до инициализации SDK.

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

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

Для получения данных (валюта, имя и количество) указанного плейсмента используйте метод rewardForPlacement:(NSString *)placement:

let rewardCurrencyName = Appodeal.reward(forPlacement:"placement").currencyName
let rewardAmount = Appodeal.reward(forPlacement:"placement").amount

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

Этот метод возвращает ожидаемый eCPM для загруженного креатива. Цена высчитывается из исторических данных для конкретного рекламного блока.

Appodeal.predictedEcpm(for: .rewardedVideo)

Проверка Инициализации

Appodeal.isInitialized(for: .rewardedVideo)

Возвращает true, если Видео c наградой за просмотр было инициализировано.

Проверка Типа Кэширования

Appodeal.isAutocacheEnabled(.rewardedVideo)

Возвращает true, если автоматическое кеширование включено для видео.

Отслеживание Показа

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

В случае успешного показа вы увидите следующий лог:

[Appodeal *.*.*] [debug] [impression] Impression <APDImpression: 0x600002953b10> succesfully tracked