Подключение рекламы с вознаграждением
Это архивная версия документации. Актуальная документация по всем платформам находится здесь.
Реклама с вознаграждением (Rewarded Ad) — настраиваемое объявление, отображаемое на весь экран. За просмотр такой рекламы пользователь получает вознаграждение.
Создание и показ RewardedAd
Добавьте импорт:
import 'package:yandex_mobileads/mobile_ads.dart';
СкопированоСоздайте объект класса
RewardedAd
. Объект может быть создан только асинхронно:final ad = await RewardedAd.create( adUnitId: 'R-M-XXXXXX-Y', onAdLoaded: () { /* Do something */ }, onAdFailedToLoad: (error) { /* Do something */ }, );
СкопированоПосле создания объекта класса
RewardedAd
рекламу необходимо загрузить. Для загрузки рекламы используйте методload
, принимающий в себя опциональный объектAdRequest
:await ad.load(adRequest: AdRequest());
СкопированоМожно дождаться загрузки рекламы асинхронно с помощью ключевого слова
await
.Загрузка рекламы с вознаграждением происходит в фоновом потоке сразу после вызова метода
load
. Чтобы показать рекламу, необходимо вызвать методshow
:await ad.show();
СкопированоМожно дождаться начала показа рекламы асинхронно.
Также можно дождаться конца показа рекламы и/или вознаграждения с помощью асинхронного метода
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
появится рекламный блок.
demo-rewarded-yandex