Подключение рекламы с вознаграждением
Это архивная версия документации. Актуальная документация по всем платформам находится здесь.
Реклама с вознаграждением (Rewarded Ad) — настраиваемое объявление, отображаемое на весь экран. За просмотр такой рекламы пользователь получает вознаграждение.
Чтобы подключить рекламу:
Добавьте импорт:
import YandexMobileAds
#import <YandexMobileAds/YandexMobileAds.h>
Создайте
@property
, где будет храниться ссылка на рекламное объявление:var rewardedAd: YMARewardedAd!
@property (nonatomic, strong) YMARewardedAd *rewardedAd;
- Произведите инициализацию рекламы:
rewardedAd = YMARewardedAd(adUnitID: “<AdUnitID>”) rewardedAd.delegate = self
self.rewardedAd = [[YMARewardedAd alloc] initWithAdUnitID:<ваш уникальный AdUnitID>]; self.rewardedAd.delegate = self;
AdUnitId
— уникальный идентификатор рекламного места, который выдается в Партнерском интерфейсе и имеет вид: R-M-XXXXXX-Y.При этом
self
должен удовлетворять протоколу YMARewardedAdDelegate. - Загрузите рекламу.
rewardedAd.load()
[self.rewardedAd load];
Опционально, с помощью класса YMAAdRequest, можно передать данные для таргетирования. Пример использования класса см. в разделе Полноэкранная реклама.
Производить предзагрузку рекламы необходимо в той же ориентации, в которой она будет показана (иначе реклама не будет показана из-за несоответствия размеров экрана и баннера). Начните отображение объявления, используя данный метод:
func rewardedAdDidLoad(_ rewardedAd: YMARewardedAd) { rewardedAd.present(from: self) }
- (void)rewardedAdDidLoad:(YMARewardedAd *)rewardedAd { [rewardedAd presentFromViewController:self]; }
Если вы используете механизм награждения на стороне клиента («client-side reward»), реализуйте метод делегата -rewardedAd:didReward:. Он вызывается, когда показ засчитан и пользователь может быть награжден за просмотр рекламы. Используйте этот момент, чтобы выдать награду пользователю приложения.
Опционально можно включить логирование с помощью метода +enableLogging. Если показ рекламы не был засчитан, в консоли появится сообщение.
Чтобы определить причины, по которым реклама работает некорректно, используйте методы
func rewardedAdDidFail(toLoad rewardedAd: YMARewardedAd, error: Error) func rewardedAdDidFail(toPresent rewardedAd: YMARewardedAd, error: Error)
- (void)rewardedAdDidFailToLoad:(YMARewardedAd *)rewardedAd error:(NSError *)error; - (void)rewardedAdDidFailToPresent:(YMARewardedAd *)rewardedAd error:(NSError *)error;
Описание ошибок доступно в разделе YMAAdErrorCode.
AdUnitID
: demo-rewarded-yandex