Межстраничные объявления с вознаграждением – это формат объявления с поощрением, который позволяет предлагать награды за рекламу, автоматически показываемую при естественных переходах внутри приложения. В отличие от обычных объявлений с вознаграждением для показа межстраничных объявлений с вознаграждением не требуется согласие пользователя. В этом руководстве рассказывается, как интегрировать межстраничные объявления с вознаграждением из AdMob в приложение Flutter.
Требования
Прежде чем продолжить, сделайте следующее:
- Установите плагин Flutter версии 1.1.0 или более поздней.
- Настройте Google Mobile Ads Flutter Plugin. В приложение Flutter должен быть импортирован пакет Google Mobile Ads Flutter Plugin.
Всегда используйте тестовые объявления
При создании и тестировании приложений используйте тестовые объявления, а не реальные. В противном случае ваш аккаунт может быть заблокирован.
Проще всего загрузить тестовые объявления, используя специальный идентификатор тестового рекламного блока для межстраничных объявлений с вознаграждением:
Android
ca-app-pub-3940256099942544/5354046379
iOS
ca-app-pub-3940256099942544/6978759866
Тестовые рекламные блоки настроены так, чтобы возвращать тестовые объявления по каждому запросу. Вы можете использовать их в своих приложениях при написании кода, тестировании и отладке. Перед публикацией приложения не забудьте заменить их идентификаторами собственных рекламных блоков.
Загрузка объявления
В примере ниже загружается межстраничное объявление с вознаграждением.
Замените _adUnitId идентификатором своего рекламного блока.
События межстраничных объявлений с вознаграждением
С помощью FullScreenContentCallback можно отслеживать события жизненного цикла, например показ или закрытие объявления. Чтобы получать уведомления об этих событиях, задайте RewardedInterstitialAd.fullScreenContentCallback перед показом объявления. В этом примере реализуется каждый метод и регистрируется сообщение в консоли:
ad.fullScreenContentCallback = FullScreenContentCallback(
onAdShowedFullScreenContent: (ad) {
// Called when the ad showed the full screen content.
debugPrint('Ad showed full screen content.');
},
onAdFailedToShowFullScreenContent: (ad, err) {
// Called when the ad failed to show full screen content.
debugPrint('Ad failed to show full screen content with error: $err');
// Dispose the ad here to free resources.
ad.dispose();
},
onAdDismissedFullScreenContent: (ad) {
// Called when the ad dismissed full screen content.
debugPrint('Ad was dismissed.');
// Dispose the ad here to free resources.
ad.dispose();
},
onAdImpression: (ad) {
// Called when an impression occurs on the ad.
debugPrint('Ad recorded an impression.');
},
onAdClicked: (ad) {
// Called when a click is recorded for an ad.
debugPrint('Ad was clicked.');
},
);
Медийное объявление
RewardedInterstitialAd показывается поверх всего контента приложения и размещается статически, поэтому его нельзя добавить в дерево виджетов Flutter.
Вы можете выбрать, когда показывать объявление, вызвав метод show().
RewardedInterstitialAd.show() принимает OnUserEarnedRewardCallback, который вызывается, когда пользователь получает вознаграждение. Обязательно реализуйте эту функцию и вознаграждайте пользователей за просмотр рекламы.
_rewardedInterstitialAd?.show(
onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) {
debugPrint('Reward amount: ${rewardItem.amount}');
},
);
После вызова show() Ad, показанный таким образом, нельзя удалить программно, и требуется действие пользователя. RewardedInterstitialAd можно показать только один раз. Последующие вызовы show будут запускать onAdFailedToShowFullScreenContent.
Объявление должно быть удалено, когда доступ к нему больше не требуется. Рекомендуется вызывать dispose() в обратных вызовах FullScreenContentCallback.onAdDismissedFullScreenContent и FullScreenContentCallback.onAdFailedToShowFullScreenContent.
Как проверить обратные вызовы при проверке на стороне сервера (необязательно)
Если приложению требуются дополнительные данные в обратных вызовах для проверки на стороне сервера, используйте функцию пользовательских данных в объявлениях с вознаграждением. Любое строковое значение, заданное в объекте объявления с вознаграждением, передается в параметр запроса custom_data обратного вызова для проверки на стороне сервера. Если значение не задано, параметр запроса custom_data не будет включен в обратный вызов для проверки на стороне сервера.
В примере кода ниже показано, как задать параметры проверки после загрузки межстраничного объявления с вознаграждением.
Замените SAMPLE_CUSTOM_DATA_STRING своими данными.
Полный пример на GitHub
Полный пример можно посмотреть в демоверсии API.