Прежде чем начать
Прежде чем продолжить, выполните следующие действия:
- Настройте Google Mobile Ads SDK (Legacy) .
- Используйте идентификатор тестового рекламного блока с вознаграждением
ca-app-pub-3940256099942544/5224354917.- При разработке и тестировании приложений обязательно используйте тестовые объявления, а не рабочие, запущенные в производство. Если вы не используете идентификатор тестового рекламного блока, Google может заблокировать ваш аккаунт.
- Перед публикацией приложения замените этот ID на идентификатор вашего рекламного блока.
- Подробную информацию о тестовых объявлениях Google Mobile Ads SDK (Legacy) см. в разделе «Включение тестовых объявлений» .
Загрузите рекламный объект с вознаграждением.
Реклама с вознаграждением загружается путем вызова статического метода load класса RewardedAd и передачи в него объекта RewardedAdLoadCallback . Обычно это делается в методе onCreate объекта ` Activity . Обратите внимание, что, как и другие коллбэки для форматированной загрузки, RewardedAdLoadCallback использует LoadAdError для предоставления более подробной информации об ошибке.
Java
Котлин
Замените 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.");
}
});
Котлин
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.
}
});
Котлин
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 Mediation, порядок обратных вызовов определяется сторонним источником рекламы. Для источников рекламы, которые предоставляют один обратный вызов закрытия с информацией о вознаграждении, адаптер медиации вызывает метод onUserEarnedReward перед методом onAdDismissedFullScreenContent . Подробнее см. раздел «Настройка AdMob Mediation» .
Необязательно: Проверить обратные вызовы серверной проверки (SSV).
Приложениям, требующим дополнительных данных в коллбэках проверки на стороне сервера, следует использовать функцию пользовательских данных в объявлениях с вознаграждением. Любое строковое значение, заданное для объекта объявления с вознаграждением, передается в параметр запроса custom_data коллбэка SSV. Если значение пользовательских данных не задано, значение параметра запроса custom_data не будет присутствовать в коллбэке SSV.
Приведенный ниже пример кода демонстрирует, как установить пользовательские данные для объекта рекламного объявления с вознаграждением перед запросом показа объявления.
Java
Котлин
Замените SAMPLE_CUSTOM_DATA_STRING на ваши пользовательские данные.
Если вы хотите задать пользовательскую строку вознаграждения, это необходимо сделать до показа рекламы.
Примеры на GitHub
Следующие шаги
Изучите следующие темы: