Предпосылки
- Google Mobile Ads SDK 19.7.0 или выше.
- Заполните руководство по началу работы .
Всегда проверяйте с помощью тестовых объявлений
При создании и тестировании приложений обязательно используйте тестовые объявления, а не реальные, производственные. В противном случае ваш аккаунт может быть заблокирован.
Самый простой способ загрузить тестовую рекламу — использовать наш специальный идентификатор тестового рекламного блока для объявлений с вознаграждением для Android:
/21775744923/example/rewarded
Он специально настроен для возврата тестовых объявлений при каждом запросе, и вы можете использовать его в своих приложениях при кодировании, тестировании и отладке. Просто убедитесь, что вы заменили его на свой идентификатор рекламного блока перед публикацией приложения.
Дополнительную информацию о работе тестовых объявлений Mobile Ads SDK см. в разделе Тестовые объявления .
Загрузить объект вознагражденной рекламы
Объявления с вознаграждением загружаются путём вызова статического метода load()
класса RewardedAd
и передачи ему RewardedAdLoadCallback
. Обычно это делается в методе onCreate()
объекта Activity
. Обратите внимание, что, как и другие обратные вызовы загрузки форматов, RewardedAdLoadCallback
использует LoadAdError
для предоставления более точной информации об ошибках.
Ява
Котлин
Замените AD_UNIT_ID на идентификатор вашего рекламного блока.
Установите FullScreenContentCallback
Функция FullScreenContentCallback
обрабатывает события, связанные с отображением вашего объявления RewardedAd
. Перед показом объявления RewardedAd
обязательно настройте обратный вызов следующим образом:
Ява
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
для обработки событий вознаграждения.
Ява
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
},
)
Часто задаваемые вопросы
- Существует ли тайм-аут для вызова инициализации?
- Через 10 секунд Google Mobile Ads SDK вызывает
OnInitializationCompleteListener
, даже если сеть-посредник еще не завершила инициализацию. - Что делать, если некоторые сети-посредники не готовы, когда я получаю обратный вызов инициализации?
Мы рекомендуем загружать рекламу внутри обратного вызова
OnInitializationCompleteListener
. Даже если сеть-посредник не готова, Google Mobile Ads SDK всё равно запрашивает у неё рекламу. Таким образом, если сеть-посредник завершает инициализацию после истечения времени ожидания, она всё равно сможет обрабатывать будущие запросы на рекламу в этом сеансе.Вы можете продолжить опрашивать состояние инициализации всех адаптеров на протяжении всего сеанса приложения, вызвав
MobileAds.getInitializationStatus()
.- Как узнать, почему конкретная посредническая сеть не готова?
AdapterStatus.getDescription()
описывает, почему адаптер не готов обслуживать запросы рекламы.- Всегда ли обратный вызов
onUserEarnedReward()
вызывается перед обратным вызовомonAdDismissedFullScreenContent()
? Для объявлений Google все вызовы
onUserEarnedReward()
выполняются доonAdDismissedFullScreenContent()
. Для объявлений, показываемых через посредника , порядок обратных вызовов определяется реализацией SDK сторонних рекламных сетей. Для SDK рекламных сетей, которые предоставляют один обратный вызов закрытия с информацией о вознаграждении, адаптер посредника вызываетonUserEarnedReward()
передonAdDismissedFullScreenContent()
.
Примеры на GitHub
Следующие шаги
Изучите следующие темы:
, Реклама с вознаграждением позволяет вознаграждать пользователей предметами внутри приложения за взаимодействие с видеорекламой, воспроизводимой рекламой и опросами.Предпосылки
- Google Mobile Ads SDK 19.7.0 или выше.
- Заполните руководство по началу работы .
Всегда проверяйте с помощью тестовых объявлений
При создании и тестировании приложений обязательно используйте тестовые объявления, а не реальные, производственные. В противном случае ваш аккаунт может быть заблокирован.
Самый простой способ загрузить тестовую рекламу — использовать наш специальный идентификатор тестового рекламного блока для объявлений с вознаграждением для Android:
/21775744923/example/rewarded
Он специально настроен для возврата тестовых объявлений при каждом запросе, и вы можете использовать его в своих приложениях при кодировании, тестировании и отладке. Просто убедитесь, что вы заменили его на свой идентификатор рекламного блока перед публикацией приложения.
Дополнительную информацию о работе тестовых объявлений Mobile Ads SDK см. в разделе Тестовые объявления .
Загрузить объект вознагражденной рекламы
Объявления с вознаграждением загружаются путём вызова статического метода load()
класса RewardedAd
и передачи ему RewardedAdLoadCallback
. Обычно это делается в методе onCreate()
объекта Activity
. Обратите внимание, что, как и другие обратные вызовы загрузки форматов, RewardedAdLoadCallback
использует LoadAdError
для предоставления более точной информации об ошибках.
Ява
Котлин
Замените AD_UNIT_ID на идентификатор вашего рекламного блока.
Установите FullScreenContentCallback
Функция FullScreenContentCallback
обрабатывает события, связанные с отображением вашего объявления RewardedAd
. Перед показом объявления RewardedAd
обязательно настройте обратный вызов следующим образом:
Ява
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
для обработки событий вознаграждения.
Ява
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
},
)
Часто задаваемые вопросы
- Существует ли тайм-аут для вызова инициализации?
- Через 10 секунд Google Mobile Ads SDK вызывает
OnInitializationCompleteListener
, даже если сеть-посредник еще не завершила инициализацию. - Что делать, если некоторые сети-посредники не готовы, когда я получаю обратный вызов инициализации?
Мы рекомендуем загружать рекламу внутри обратного вызова
OnInitializationCompleteListener
. Даже если сеть-посредник не готова, Google Mobile Ads SDK всё равно запрашивает у неё рекламу. Таким образом, если сеть-посредник завершает инициализацию после истечения времени ожидания, она всё равно сможет обрабатывать будущие запросы на рекламу в этом сеансе.Вы можете продолжить опрашивать состояние инициализации всех адаптеров на протяжении всего сеанса приложения, вызвав
MobileAds.getInitializationStatus()
.- Как узнать, почему конкретная посредническая сеть не готова?
AdapterStatus.getDescription()
описывает, почему адаптер не готов обслуживать запросы рекламы.- Всегда ли обратный вызов
onUserEarnedReward()
вызывается перед обратным вызовомonAdDismissedFullScreenContent()
? Для объявлений Google все вызовы
onUserEarnedReward()
выполняются доonAdDismissedFullScreenContent()
. Для объявлений, показываемых через посредника , порядок обратных вызовов определяется реализацией SDK сторонних рекламных сетей. Для SDK рекламных сетей, которые предоставляют один обратный вызов закрытия с информацией о вознаграждении, адаптер посредника вызываетonUserEarnedReward()
передonAdDismissedFullScreenContent()
.
Примеры на GitHub
Следующие шаги
Изучите следующие темы: