Reklamy pełnoekranowe z nagrodą (beta)

Reklama pełnoekranowa z nagrodą to format reklamy zachęcającej użytkownika do jej obejrzenia. Umożliwia uzyskanie nagród w aplikacji, takich jak monety lub dodatkowe życia. Reklamy tego typu wyświetlają się automatycznie w naturalnych momentach przejściowych w 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

Implementacja

Główne etapy integracji reklam pełnoekranowych z nagrodą:

  • Wczytaj reklamę.
  • Zarejestruj wywołania zwrotne zdarzeń pełnoekranowych.
  • Obsłuż wywołanie zwrotne nagrody.
  • Wyświetl reklamę.
  • Opcjonalnie: zweryfikuj wywołania zwrotne SSV.

Wczytaj reklamę

Reklamę wczytuje się za pomocą statycznej metody load w klasie RewardedInterstitialAd. Metoda wczytywania wymaga kontekstu, identyfikatora jednostki reklamowej, obiektu AdRequest i RewardedInterstitialAdLoadCallback, aby powiadomić Cię, gdy wczytywanie reklamy się powiedzie lub nie. Wczytany obiekt RewardedInterstitialAd jest przekazywany jako parametr w wywołaniu zwrotnym onRewardedInterstitialAdLoaded.

Poniższy przykład pokazuje, jak wczytać RewardedInterstitialAd w MainActivity.

Java

RewardedInterstitialAd.load( MainActivity.this, AD_UNIT_ID, new AdRequest.Builder().build(), new RewardedInterstitialAdLoadCallback() { @Override public void onAdLoaded(RewardedInterstitialAd ad) { Log.d(TAG, "Ad was loaded."); rewardedInterstitialAd = ad; isLoadingAds = false; } @Override public void onAdFailedToLoad(LoadAdError loadAdError) { Log.d(TAG, "onAdFailedToLoad: " + loadAdError.getMessage()); rewardedInterstitialAd = null; isLoadingAds = false; } });

Kotlin

RewardedInterstitialAd.load( this, AD_UNIT_ID, AdRequest.Builder().build(), object : RewardedInterstitialAdLoadCallback() { override fun onAdLoaded(rewardedAd: RewardedInterstitialAd) { Log.d(TAG, "Ad was loaded.") rewardedInterstitialAd = rewardedAd isLoadingAds = false } override fun onAdFailedToLoad(adError: LoadAdError) { Log.d(TAG, "onAdFailedToLoad: ${adError.message}") rewardedInterstitialAd = null isLoadingAds = false } }, )

Zastąp AD_UNIT_ID identyfikatorem jednostki reklamowej.

Zarejestruj wywołania zwrotne

Aby otrzymywać powiadomienia o zdarzeniach prezentacji, musisz przekazać obiekt FullScreenContentCallback do ustawiającego w reklamie. Obiekt FullScreenContentCallback obsługuje wywołania zwrotne, gdy reklama jest wyświetlana lub nie, oraz gdy jest zamykana. 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ą, przekaż obiekt OnUserEarnedRewardListener, aby obsługiwać zdarzenia związane 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] Zweryfikuj wywołania zwrotne weryfikacji po stronie serwera (SSV)

Jeśli w wywołaniach zwrotnych weryfikacji po stronie serwera potrzebujesz dodatkowych danych, użyj 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, wartość parametru zapytania custom_data nie będzie obecna w wywołaniu zwrotnym SSV.

Poniższy przykład kodu pokazuje, jak ustawić dane niestandardowe w obiekcie reklamy pełnoekranowej z nagrodą przed wysłaniem prośby o reklamę.

Java

RewardedInterstitialAd.load( context, AD_UNIT_ID, new AdRequest.Builder().build(), new RewardedInterstitialAdLoadCallback() { @Override public void onAdLoaded(RewardedInterstitialAd ad) { rewardedInterstitialAd = ad; ServerSideVerificationOptions options = new ServerSideVerificationOptions.Builder() .setCustomData(SAMPLE_CUSTOM_DATA_STRING) .build(); rewardedInterstitialAd.setServerSideVerificationOptions(options); } });

Kotlin

RewardedInterstitialAd.load( context, AD_UNIT_ID, AdRequest.Builder().build(), object : RewardedInterstitialAdLoadCallback() { override fun onAdLoaded(ad: RewardedInterstitialAd) { rewardedInterstitialAd = ad val options = ServerSideVerificationOptions.Builder().setCustomData(SAMPLE_CUSTOM_DATA_STRING).build() rewardedInterstitialAd?.setServerSideVerificationOptions(options) } }, )

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 na GitHubie

  • Przykład reklam pełnoekranowych z nagrodą: Java | Kotlin

Dalsze kroki

Zapoznaj się z tymi tematami: