Подготовка
Прежде чем продолжить, выполните следующие действия:
- Настройте 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 обратного вызова SSV. Если значение специальных данных не задано, значение параметра запроса custom_data не будет присутствовать в обратном вызове SSV.
В приведенном ниже фрагменте кода показано, как задать специальные данные для объекта объявления с вознаграждением перед отправкой запроса объявления.
Java
Kotlin
Замените SAMPLE_CUSTOM_DATA_STRING собственными данными.
Если вы хотите задать строку настраиваемой награды, это нужно сделать до показа объявления.
Примеры на GitHub
Дальнейшие действия
Ознакомьтесь со следующими темами:
- Конфиденциальность пользователей
- Оптимизированная инициализация SDK и загрузка объявлений (бета-версия)