Подключение рекламы с вознаграждением

Внимание.

Это архивная версия документации. Актуальная документация по всем платформам находится здесь.

Реклама с вознаграждением (Rewarded Ad) — настраиваемое объявление, отображаемое на весь экран. За просмотр такой рекламы пользователь получает вознаграждение.

Создание и показ RewardedAd

  1. Добавьте импорт:

    import 'package:yandex_mobileads/mobile_ads.dart';
    Скопировано
  2. Создайте объект класса RewardedAd. Объект может быть создан только асинхронно:

    final ad = await RewardedAd.create(
     adUnitId: 'R-M-XXXXXX-Y',
     onAdLoaded: () { 
         /* Do something */
     },
     onAdFailedToLoad: (error) { 
         /* Do something */
     },
    );
    Скопировано
  3. После создания объекта класса RewardedAd рекламу необходимо загрузить. Для загрузки рекламы используйте метод load, принимающий в себя опциональный объект AdRequest:

    await ad.load(adRequest: AdRequest());
    Скопировано

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

  4. Загрузка рекламы с вознаграждением происходит в фоновом потоке сразу после вызова метода load. Чтобы показать рекламу, необходимо вызвать метод show:

    await ad.show();
    Скопировано

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

  5. Также можно дождаться конца показа рекламы и/или вознаграждения с помощью асинхронного метода waitForDismiss:

    Reward? reward = await ad.waitForDismiss();
    Скопировано

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

Код демонстрирует создание и настройку объекта RewardedAd, загрузку и отображение рекламы с вознаграждением:

Future<void> showRewardedAd() async {
  final ad = await RewardedAd.create(
    adUnitId: 'demo-rewarded-yandex',
    onAdLoaded: () { 
        /* Do something */
    },
    onAdFailedToLoad: (error) { 
        /* Do something */
    },
  );
  await ad.load(adRequest: AdRequest());
  await ad.show();
  final reward = await ad.waitForDismiss();
  if (reward != null) debugPrint('got ${reward.amount} of ${reward.type}');
}
Скопировано

Если реклама подключена данным образом, при вызове showRewardedAd появится рекламный блок.

Чтобы посмотреть, как реклама будет отображаться в приложении, используйте демонстрационный AdUnitId:
  • demo-rewarded-yandex