Reklama pełnoekranowa z nagrodą to format reklamy zachęcającej użytkownika do jej obejrzenia, 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ą.
Wymagania wstępne
- Pakiet SDK do reklam mobilnych Google w wersji 19.2.0 lub nowszej.
- Zapoznaj się z przewodnikiem dla początkujących.
Implementacja
Główne etapy integracji reklam pełnoekranowych z nagrodą są następujące:
- Wczytywanie reklamy
- Rejestrowanie wywołań zwrotnych zdarzeń pełnoekranowych
- Obsługa wywołania zwrotnego dotyczącego nagrody
- Wyświetlanie reklamy
- [Opcjonalnie] Weryfikowanie wywołań zwrotnych SSV
Wczytywanie reklamy
Reklamę wczytuje się za pomocą statycznej metody load() w klasie RewardedInterstitialAd. Metoda wczytywania wymaga obiektu Context, identyfikatora jednostki reklamowej, obiektu AdRequest i obiektu RewardedInterstitialAdLoadCallback, który będzie powiadamiany, gdy wczytywanie reklamy się powiedzie lub nie. Wczytany obiekt RewardedInterstitialAd jest podawany jako parametr w wywołaniu zwrotnym onRewardedInterstitialAdLoaded().
Poniższy przykład pokazuje, jak wczytać element RewardedInterstitialAd w MainActivity.
Java
Kotlin
Zastąp AD_UNIT_ID identyfikatorem jednostki reklamowej.
Rejestrowanie wywołań zwrotnych
Aby otrzymywać powiadomienia o zdarzeniach związanych z prezentacją, musisz przekazać obiekt FullScreenContentCallback do funkcji ustawiającej w reklamie. Obiekt FullScreenContentCallback obsługuje wywołania zwrotne w przypadku, gdy reklama zostanie wyświetlona prawidłowo lub nieprawidłowo, a także gdy zostanie zamknięta. Poniższy kod pokazuje, jak ustawić anonimowy obiekt FullScreenContentCallback w RewardedInterstitialAdLoadCallback:
Java
rewardedInterstitialAd.setFullScreenContentCallback(
    new FullScreenContentCallback() {
      @Override
      public void onAdDismissedFullScreenContent() {
        // Called when fullscreen content is dismissed.
        Log.d(TAG, "The ad was dismissed.");
        // Make sure to set your reference to null so you don't
        // show it a second time.
        rewardedInterstitialAd = null;
        if (googleMobileAdsConsentManager.canRequestAds()) {
          loadRewardedInterstitialAd();
        }
      }
      @Override
      public void onAdFailedToShowFullScreenContent(AdError adError) {
        // Called when fullscreen content failed to show.
        Log.d(TAG, "The ad failed to show.");
        // Make sure to set your reference to null so you don't
        // show it a second time.
        rewardedInterstitialAd = null;
      }
      @Override
      public void onAdShowedFullScreenContent() {
        // Called when fullscreen content is shown.
        Log.d(TAG, "The ad was shown.");
      }
      @Override
      public void onAdImpression() {
        // Called when an impression is recorded for an ad.
        Log.d(TAG, "The ad recorded an impression.");
      }
      @Override
      public void onAdClicked() {
        // Called when ad is clicked.
        Log.d(TAG, "The ad was clicked.");
      }
    });
Kotlin
rewardedInterstitialAd?.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.
      rewardedInterstitialAd = 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.
      rewardedInterstitialAd = 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.")
    }
  }
Wyświetl reklamę
Gdy wyświetlasz reklamę pełnoekranową z nagrodą, używasz obiektu 
OnUserEarnedRewardListener do obsługi zdarzeń związanych z nagrodą.
Java
rewardedInterstitialAd.show(
    MainActivity.this,
    new OnUserEarnedRewardListener() {
      @Override
      public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
        Log.d(TAG, "The user earned the reward.");
        // Handle the reward.
        int rewardAmount = rewardItem.getAmount();
        String rewardType = rewardItem.getType();
      }
    });
Kotlin
rewardedInterstitialAd?.show(this) { rewardItem ->
  Log.d(TAG, "User earned the reward.")
  // Handle the reward.
  val rewardAmount = rewardItem.amount
  val rewardType = rewardItem.type
}
[Opcjonalnie] Weryfikowanie wywołań zwrotnych weryfikacji po stronie serwera
Aplikacje, które wymagają dodatkowych danych w wywołaniach zwrotnych weryfikacji po stronie serwera, powinny korzystać z funkcji danych niestandardowych w reklamach z nagrodą. Każda wartość ciągu znaków ustawiona w obiekcie reklamy z nagrodą jest przekazywana do parametru zapytania custom_data wywołania zwrotnego SSV. Jeśli nie ustawisz wartości danych niestandardowych, w wywołaniu zwrotnym SSV nie będzie parametru zapytania custom_data.
Poniższy przykładowy kod pokazuje, jak ustawić dane niestandardowe w obiekcie reklamy pełnoekranowej z nagrodą przed wysłaniem żądania reklamy.
Java
Kotlin
Zastąp SAMPLE_CUSTOM_DATA_STRING swoimi danymi niestandardowymi.
Jeśli chcesz ustawić niestandardowy ciąg znaków nagrody, musisz to zrobić przed wyświetleniem reklamy.
Przykłady w GitHubie
Dalsze kroki
Poznaj te tematy: