Требования
Всегда тестируйте с помощью тестовых объявлений
При создании и тестировании приложений используйте тестовые объявления, а не реальные. В противном случае ваш аккаунт может быть заблокирован.
Самый простой способ загрузить тестовые объявления – использовать специальный идентификатор тестового рекламного блока для объявлений с вознаграждением в Android:
ca-app-pub-3940256099942544/5224354917
Этот идентификатор рекламного блока специально настроен на то, чтобы возвращать тестовые объявления для каждого запроса. Вы можете использовать его в своих приложениях при написании кода, тестировании и отладке. Обязательно замените его на идентификатор своего рекламного блока, прежде чем публиковать приложение.
Подробнее GMA Next-Gen SDK о включении тестовых объявлений…
Как загрузить объявление
Чтобы оптимизировать задержку при показе нескольких объявлений, попробуйте использовать предварительную загрузку объявлений.
В следующем примере показано, как загрузить одно объявление:
Kotlin
// Load ads after you initialize MobileAds. RewardedAd.load( AdRequest.Builder(adUnitId).build(), object : AdLoadCallback<RewardedAd> { override fun onAdLoaded(ad: RewardedAd) { // Rewarded ad loaded. rewardedAd = ad } override fun onAdFailedToLoad(adError: LoadAdError) { // Rewarded ad failed to load. Log.e(TAG, "Rewarded ad failed to load: ${adError.message}") rewardedAd = null } }, )
Java
// Load ads after you initialize MobileAds. RewardedAd.load( new AdRequest.Builder(adUnitId).build(), new AdLoadCallback<RewardedAd>() { @Override public void onAdLoaded(@NonNull RewardedAd ad) { // Rewarded ad loaded. rewardedAd = ad; } @Override public void onAdFailedToLoad(@NonNull LoadAdError adError) { // Rewarded ad failed to load. Log.e(TAG, "Rewarded ad failed to load: " + adError.getMessage()); rewardedAd = null; } });
При тестировании используйте идентификатор тестового рекламного блока:
ca-app-pub-3940256099942544/5224354917.
Показ объявления
Чтобы показать объявление с вознаграждением, используйте метод show. Используйте объект OnUserEarnedRewardListener для обработки событий, связанных с вознаграждениями.
Kotlin
private fun showAd(rewardedAd: RewardedAd, activity: Activity) { // Show the ad. rewardedAd.show( activity, object : OnUserEarnedRewardListener { override fun onUserEarnedReward(rewardItem: RewardItem) { // User earned the reward. val rewardAmount = rewardItem.amount val rewardType = rewardItem.type } }, ) }
Java
private void showAd(RewardedAd rewardedAd, Activity activity) { // Show the ad. rewardedAd.show( activity, new OnUserEarnedRewardListener() { @Override public void onUserEarnedReward(@NonNull RewardItem rewardItem) { // User earned the reward. int rewardAmount = rewardItem.getAmount(); String rewardType = rewardItem.getType(); } }); }
Как отслеживать события объявлений
Перед показом объявления прослушайте события жизненного цикла объявления:
Kotlin
private fun listenToAdEvents() { // Listen for ad events. val ad = rewardedAd if (ad == null) { Log.e(TAG, "Rewarded ad is not ready yet.") return } ad.adEventCallback = object : RewardedAdEventCallback { override fun onAdShowedFullScreenContent() { // Rewarded ad did show. } override fun onAdDismissedFullScreenContent() { // Rewarded ad did dismiss. rewardedAd = null } override fun onAdFailedToShowFullScreenContent( fullScreenContentError: FullScreenContentError ) { // Rewarded ad failed to show. Log.e(TAG, "Rewarded ad failed to show: ${fullScreenContentError.message}") } override fun onAdImpression() { // Rewarded ad did record an impression. } override fun onAdClicked() { // Rewarded ad did record a click. } } }
Java
private void listenToAdEvents() { // Listen for ad events. if (rewardedAd == null) { Log.e(TAG, "Rewarded ad is not ready yet."); return; } rewardedAd.setAdEventCallback( new RewardedAdEventCallback() { @Override public void onAdShowedFullScreenContent() { // Rewarded ad did show. } @Override public void onAdDismissedFullScreenContent() { // Rewarded ad did dismiss. rewardedAd = null; } @Override public void onAdFailedToShowFullScreenContent( FullScreenContentError fullScreenContentError) { // Rewarded ad failed to show. Log.e(TAG, "Rewarded ad failed to show: " + fullScreenContentError.getMessage()); } @Override public void onAdImpression() { // Rewarded ad did record an impression. } @Override public void onAdClicked() { // Rewarded ad did record a click. } }); }
Как проверить обратные вызовы проверки на стороне сервера (необязательно)
Если для работы вашего приложения требуются дополнительные данные в обратных вызовах проверки на стороне сервера, используйте функцию специальных данных в объявлениях с вознаграждением. Любое строковое значение, заданное для объекта объявления с вознаграждением, передается в параметр запроса custom_data обратного вызова SSV. Если значение специальных данных не задано, значение параметра запроса custom_data не будет присутствовать в обратном вызове SSV.
В приведенном ниже фрагменте кода показано, как задать специальные данные для объекта объявления с вознаграждением перед запросом объявления:
Kotlin
Java
Замените SAMPLE_CUSTOM_DATA_STRING собственными данными.
Если вы хотите задать строку настраиваемой награды, это нужно сделать до показа объявления.