Подготовка
Прежде чем продолжить, сделайте следующее:
- Настройте Google Mobile Ads SDK (Legacy).
- Используйте идентификатор тестового рекламного блока для объявлений с вознаграждением
ca-app-pub-3940256099942544/5224354917.- При создании и тестировании приложений используйте тестовые объявления, а не реальные. Если вы не будете использовать идентификатор тестового рекламного блока, Google может заблокировать ваш аккаунт.
- Перед публикацией приложения замените этот идентификатор на идентификатор своего рекламного блока.
- Подробнее о тестовых объявлениях Google Mobile Ads SDK (Legacy) рассказывается в статье Как включить тестовые объявления.
Загрузите объект объявления с вознаграждением
Объявления с вознаграждением загружаются путем вызова статического метода load в классе RewardedAd и передачи RewardedAdLoadCallback. Обычно это делается в методе onCreate класса Activity.
Обратите внимание, что, как и в случае с другими обратными вызовами загрузки форматов, RewardedAdLoadCallback использует LoadAdError для предоставления более точных сведений об ошибках.
Java
Kotlin
Замените AD_UNIT_ID идентификатором своего рекламного блока.
Настройте FullScreenContentCallback
FullScreenContentCallback обрабатывает события, связанные с показом RewardedAd. Прежде чем показывать RewardedAd, настройте обратный вызов следующим образом:
Java
rewardedAd.setFullScreenContentCallback(
new FullScreenContentCallback() {
@Override
public void onAdDismissedFullScreenContent() {
// Called when fullscreen content is dismissed.
Log.d(TAG, "Ad was dismissed.");
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
rewardedAd = null;
}
@Override
public void onAdFailedToShowFullScreenContent(AdError adError) {
// Called when fullscreen content failed to show.
Log.d(TAG, "Ad failed to show.");
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
rewardedAd = null;
}
@Override
public void onAdShowedFullScreenContent() {
// Called when fullscreen content is shown.
Log.d(TAG, "Ad showed fullscreen content.");
}
@Override
public void onAdImpression() {
// Called when an impression is recorded for an ad.
Log.d(TAG, "Ad recorded an impression.");
}
@Override
public void onAdClicked() {
// Called when an ad is clicked.
Log.d(TAG, "Ad was clicked.");
}
});
Kotlin
rewardedAd?.fullScreenContentCallback =
object : FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
// Called when fullscreen content is dismissed.
Log.d(TAG, "Ad was dismissed.")
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
rewardedAd = null
}
override fun onAdFailedToShowFullScreenContent(adError: AdError) {
// Called when fullscreen content failed to show.
Log.d(TAG, "Ad failed to show.")
// Don't forget to set the ad reference to null so you
// don't show the ad a second time.
rewardedAd = null
}
override fun onAdShowedFullScreenContent() {
// Called when fullscreen content is shown.
Log.d(TAG, "Ad showed fullscreen content.")
}
override fun onAdImpression() {
// Called when an impression is recorded for an ad.
Log.d(TAG, "Ad recorded an impression.")
}
override fun onAdClicked() {
// Called when an ad is clicked.
Log.d(TAG, "Ad was clicked.")
}
}
Покажите объявление
При показе объявления с вознаграждением используйте объект OnUserEarnedRewardListener для обработки событий получения вознаграждения.
Java
rewardedAd.show(
MainActivity.this,
new OnUserEarnedRewardListener() {
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
Log.d(TAG, "User earned the reward.");
// Handle the reward.
}
});
Kotlin
rewardedAd?.show(
this,
OnUserEarnedRewardListener { rewardItem ->
Log.d(TAG, "User earned the reward.")
// Handle the reward.
val rewardAmount = rewardItem.amount
val rewardType = rewardItem.type
},
)
Для объявлений, которые показывает Google, Google Mobile Ads SDK (Legacy) вызывает метод onUserEarnedReward перед методом onAdDismissedFullScreenContent. Для объявлений, которые показываются с помощью медиации AdMob, порядок обратных вызовов определяется сторонним источником объявлений. Для источников объявлений, которые предоставляют один обратный вызов закрытия с информацией о вознаграждении, адаптер медиации вызывает метод onUserEarnedReward перед методом onAdDismissedFullScreenContent. Подробнее о том, как настроить медиацию AdMob…
Как проверить обратные вызовы при проверке на стороне сервера (необязательно)
Если приложению требуются дополнительные данные в обратных вызовах для проверки на стороне сервера, используйте функцию специальных данных в объявлениях с вознаграждением. Любое строковое значение, заданное в объекте объявления с вознаграждением, передается в параметр запроса custom_data обратного вызова для проверки на стороне сервера. Если значение не задано, параметр запроса custom_data не будет включен в обратный вызов для проверки на стороне сервера.
В примере кода ниже показано, как задать пользовательские данные в объекте объявления с вознаграждением перед запросом объявления.
Java
Kotlin
Замените SAMPLE_CUSTOM_DATA_STRING своими данными.
Если вы хотите задать собственную строку вознаграждения, это нужно сделать до показа объявления.
Примеры на GitHub
Дальнейшие действия
Ознакомьтесь со следующими темами: