Предварительные требования
- Google Mobile Ads SDK версии 19.7.0 или выше.
- Пройдите руководство по началу работы .
Всегда проводите тестирование с помощью тестовых объявлений.
При разработке и тестировании приложений обязательно используйте тестовые объявления, а не реальные, рабочие объявления. Несоблюдение этого правила может привести к блокировке вашего аккаунта.
Самый простой способ загрузить тестовые объявления — использовать наш специальный идентификатор тестового рекламного блока для рекламы с вознаграждением в Android:
/21775744923/example/rewarded
Он специально настроен на возврат тестовых объявлений для каждого запроса, и вы можете свободно использовать его в своих приложениях во время кодирования, тестирования и отладки. Просто убедитесь, что вы заменили его на свой собственный идентификатор рекламного блока перед публикацией приложения.
Подробную информацию о тестовых объявлениях в Google Mobile Ads SDK см. в разделе «Включение тестовых объявлений» .
Загрузите рекламный объект с вознаграждением.
Рекламные объявления с вознаграждением загружаются путем вызова статического метода 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
},
)
[Необязательно] Проверка обратных вызовов серверной проверки (SSV)
Приложениям, требующим дополнительных данных в коллбэках проверки на стороне сервера, следует использовать функцию пользовательских данных в объявлениях с вознаграждением. Любое строковое значение, заданное для объекта объявления с вознаграждением, передается в параметр запроса custom_data коллбэка SSV. Если значение пользовательских данных не задано, значение параметра запроса custom_data не будет присутствовать в коллбэке SSV.
Приведенный ниже пример кода демонстрирует, как установить пользовательские данные для объекта рекламного объявления с вознаграждением перед запросом показа объявления.
Java
Котлин
Замените SAMPLE_CUSTOM_DATA_STRING на ваши пользовательские данные.
Если вы хотите задать пользовательскую строку вознаграждения, это необходимо сделать до показа рекламы.
Часто задаваемые вопросы
- Предусмотрен ли тайм-аут для вызова инициализации?
- Через 10 секунд SDK Google Mobile Ads вызывает
OnInitializationCompleteListener, даже если инициализация сети-посредника еще не завершена. - Что произойдет, если некоторые сети-посредники окажутся не готовы к моменту получения обратного вызова инициализации?
Мы рекомендуем загружать рекламу внутри функции обратного вызова
OnInitializationCompleteListener. Даже если сеть-посредник еще не готова, Google Mobile Ads SDK все равно запросит у нее рекламу. Таким образом, если инициализация сети-посредника завершится после истечения таймаута, она сможет обрабатывать будущие запросы на рекламу в этой сессии.Вы можете продолжать опрашивать статус инициализации всех адаптеров на протяжении всей сессии вашего приложения, вызывая метод
MobileAds.getInitializationStatus().- Как мне узнать, почему конкретная сеть медиации не готова?
AdapterStatus.getDescription()описывает причину, по которой адаптер не готов обрабатывать рекламные запросы.- Всегда ли функция обратного вызова
onUserEarnedReward()вызывается до функции обратного вызоваonAdDismissedFullScreenContent()? Для рекламы Google все вызовы
onUserEarnedReward()происходят доonAdDismissedFullScreenContent(). Для рекламы, показываемой через медиацию , порядок обратных вызовов определяется реализацией SDK рекламной сети стороннего разработчика. Для SDK рекламных сетей, которые предоставляют один обратный вызов закрытия с информацией о вознаграждении, адаптер медиации вызываетonUserEarnedReward()передonAdDismissedFullScreenContent().
Примеры на GitHub
Следующие шаги
Изучите следующие темы: