Reklamy pełnoekranowe z nagrodą to format, który umożliwia oferowanie nagród za oglądanie reklam wyświetlających się automatycznie w naturalnych momentach przejściowych aplikacji. W przeciwieństwie do reklam z nagrodą użytkownicy nie muszą wyrazić zgody na wyświetlenie reklamy pełnoekranowej z nagrodą.
Z tego przewodnika dowiesz się, jak zintegrować reklamy pełnoekranowe z nagrodą z aplikacją na Androida.
Zanim zaczniesz
Zanim przejdziesz dalej, wykonaj te czynności:
- Skonfiguruj GMA Next-Gen SDK.
- Użyj identyfikatora testowej jednostki pełnoekranowej reklamy z nagrodą:
/21775744923/example/rewarded-interstitial.- Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie gotowych reklam produkcyjnych. Jeśli nie użyjesz identyfikatora testowej jednostki reklamowej, Google może zawiesić Twoje konto.
- Zanim opublikujesz aplikację, zastąp ten identyfikator identyfikatorem jednostki reklamowej.
- Szczegółowe informacje o reklamach testowych w GMA Next-Gen SDK znajdziesz w artykule Włączanie reklam testowych.
Wczytywanie reklamy
Poniższy przykład wczytuje pojedynczą reklamę:
Kotlin
// Load ads after you initialize MobileAds. RewardedInterstitialAd.load( AdRequest.Builder(adUnitId).build(), object : AdLoadCallback<RewardedInterstitialAd> { override fun onAdLoaded(ad: RewardedInterstitialAd) { // Rewarded interstitial ad loaded. rewardedInterstitialAd = ad } override fun onAdFailedToLoad(adError: LoadAdError) { // Rewarded interstitial ad failed to load. Log.e(TAG, "Rewarded interstitial ad failed to load: ${adError.message}") rewardedInterstitialAd = null } }, )
Java
// Load ads after you initialize MobileAds. RewardedInterstitialAd.load( new AdRequest.Builder(adUnitId).build(), new AdLoadCallback<RewardedInterstitialAd>() { @Override public void onAdLoaded(@NonNull RewardedInterstitialAd ad) { // Rewarded interstitial ad loaded. rewardedInterstitialAd = ad; } @Override public void onAdFailedToLoad(@NonNull LoadAdError adError) { // Rewarded interstitial ad failed to load. Log.e(TAG, "Rewarded interstitial ad failed to load: " + adError.getMessage()); rewardedInterstitialAd = null; } });
Podczas testowania używaj identyfikatora testowej jednostki reklamowej: /21775744923/example/rewarded-interstitial.
Wyświetl reklamę
Aby wyświetlić reklamę pełnoekranową z nagrodą, wywołaj metodęshow. Aby obsługiwać zdarzenia po otrzymaniu nagrody, użyj obiektu OnUserEarnedRewardListener.
Poniższy przykład pokazuje reklamę:
Kotlin
private fun showAd(rewardedInterstitialAd: RewardedInterstitialAd, activity: Activity) { // Show the ad. rewardedInterstitialAd.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(RewardedInterstitialAd rewardedInterstitialAd, Activity activity) { // Show the ad. rewardedInterstitialAd.show( activity, new OnUserEarnedRewardListener() { @Override public void onUserEarnedReward(@NonNull RewardItem rewardItem) { // User earned the reward. int rewardAmount = rewardItem.getAmount(); String rewardType = rewardItem.getType(); } }); }
Nasłuchiwanie zdarzeń reklamowych
Zanim wyświetlisz reklamę, nasłuchuj zdarzeń cyklu życia reklamy. Przykład poniżej pokazuje, jak zarejestrować wywołania zwrotne w przypadku zdarzeń reklamowych:
Kotlin
private fun listenToAdEvents() { // Listen for ad events. val ad = rewardedInterstitialAd if (ad == null) { Log.e(TAG, "Rewarded interstitial ad is not ready yet.") return } ad.adEventCallback = object : RewardedInterstitialAdEventCallback { override fun onAdShowedFullScreenContent() { // Rewarded interstitial ad did show. } override fun onAdDismissedFullScreenContent() { // Rewarded interstitial ad did dismiss. rewardedInterstitialAd = null } override fun onAdFailedToShowFullScreenContent( fullScreenContentError: FullScreenContentError ) { // Rewarded interstitial ad failed to show. Log.e(TAG, "Rewarded interstitial ad failed to show: ${fullScreenContentError.message}") } override fun onAdImpression() { // Rewarded interstitial ad did record an impression. } override fun onAdClicked() { // Rewarded interstitial ad did record a click. } } }
Java
private void listenToAdEvents() { // Listen for ad events. if (rewardedInterstitialAd == null) { Log.e(TAG, "Rewarded interstitial ad is not ready yet."); return; } rewardedInterstitialAd.setAdEventCallback( new RewardedInterstitialAdEventCallback() { @Override public void onAdShowedFullScreenContent() { // Rewarded interstitial ad did show. } @Override public void onAdDismissedFullScreenContent() { // Rewarded interstitial ad did dismiss. rewardedInterstitialAd = null; } @Override public void onAdFailedToShowFullScreenContent( @NonNull FullScreenContentError fullScreenContentError) { // Rewarded interstitial ad failed to show. Log.e( TAG, "Rewarded interstitial ad failed to show: " + fullScreenContentError.getMessage()); } @Override public void onAdImpression() { // Rewarded interstitial ad did record an impression. } @Override public void onAdClicked() { // Rewarded interstitial ad did record a click. } }); }
Opcjonalnie: sprawdzanie wywołań zwrotnych weryfikacji po stronie serwera (SSV)
Aby przekazywać kontekst użytkownika i aplikacji w wywołaniach zwrotnych weryfikacji po stronie serwera (SSV), przed wyświetleniem reklamy ustaw opcje weryfikacji w obiekcie reklamy. Wywołania zwrotne SSV docierają do Twojego serwera z Google bez stanu sesji, dlatego dołącz te opcjonalne ciągi znaków. Google przekazuje te ciągi znaków bez zmian jako podpisane parametry zapytania w wywołaniu zwrotnym SSV:
- Parametr zapytania
user_id: identyfikuje użytkownika, któremu należy przyznać środki, np. identyfikator konta wewnętrznego. - Parametr zapytania
custom_data: zawiera dane aplikacji, takie jak miejsce docelowe nagrody, poziom gry lub liczba jednorazowa wygenerowana przez serwer.
Jeśli nie ustawisz wartości, Google pominie ten parametr zapytania w wywołaniu zwrotnym SSV.
Poniższy przykład pokazuje, jak ustawić dane niestandardowe w obiekcie reklamy przed jej wyświetleniem:
Kotlin
Java
Zastąp SAMPLE_CUSTOM_DATA_STRING danymi niestandardowymi.
Ważna uwaga: parametr zapytania custom_data jest zakodowany procentowo. Przed przeanalizowaniem wartości zdekoduj ciąg znaków URL na serwerze i zweryfikuj podpis wywołania zwrotnego, zanim zaufasz parametrom zapytania user_id lub custom_data.