es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Anuncios de video recompensados versión 20.0.0 o superior en el Adaptador.

Soy nuevo en Java y quiero implementar versiones 20.0.0 o superiores de los anuncios de video con recompensa en Adapter.class. Todo va bien según lo que leí en este enlace https://developers.google.com/admob/android/rewarded, hasta que encontré los códigos para mostrar anuncios con recompensa. Los códigos se ven así si están en MainActivity.class

if (mRewardedAd != null) {
  Activity activityContext = MainActivity.this;
  mRewardedAd.show(activityContext, new OnUserEarnedRewardListener() {
    @Override
    public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
      // Manejar la recompensa.
      Log.d(TAG, "El usuario ganó la recompensa.");
      int rewardAmount = rewardItem.getAmount();
      String rewardType = rewardItem.getType();
    }
  });
} else {
  Log.d(TAG, "El anuncio con recompensa aún no estaba listo.");
}

Mi pregunta es, ¿cómo implementar los códigos anteriores en Adapter.class?

Gracias por sus respuestas. Me será de gran ayuda.

Editar: Para que la pregunta sea más clara, quiero implementar anuncios de video con recompensa en cada lista de RecyclerView.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para implementar un anuncio de video recompensado en cada lista de RecyclerView en la clase Adapter, puedes seguir estos pasos:

    1. Primero, declara una variable de tipo RewardedAd en la clase Adapter.

      private RewardedAd mRewardedAd;

    2. En el constructor de la clase Adapter, inicializa el RewardedAd.

      public Adapter() {
         mRewardedAd = new RewardedAd(context, "IDENTIFICADOR_DEL_ANUNCIO");
         mRewardedAd.loadAd(new AdRequest.Builder().build(), new RewardedAdLoadCallback() {
             @Override
             public void onRewardedAdLoaded() {
                 // Anuncio cargado exitosamente.
             }
      
             @Override
             public void onRewardedAdFailedToLoad(LoadAdError errorCode) {
                 // Fallo al cargar el anuncio.
             }
         });
      }
      

      Nota: Reemplaza “IDENTIFICADOR_DEL_ANUNCIO” con tu propio ID de unidad de anuncios.

    3. En el método onBindViewHolder() de la clase Adapter, verifica si el RewardedAd está cargado o no. Si está cargado, muestra el anuncio y maneja la recompensa en el método onUserEarnedReward().

      @Override
      public void onBindViewHolder(ViewHolder holder, int position) {
         // Vincula los datos a las vistas.
         ...
      
         holder.itemView.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 if (mRewardedAd.isLoaded()) {
                     Activity activityContext = (Activity) context;
                     mRewardedAd.show(activityContext, new OnUserEarnedRewardListener() {
                         @Override
                         public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
                             // Maneja la recompensa.
                             Log.d(TAG, "El usuario obtuvo la recompensa.");
                             int rewardAmount = rewardItem.getAmount();
                             String rewardType = rewardItem.getType();
                         }
                     });
                 } else {
                     Log.d(TAG, "El anuncio recompensado no estaba listo todavía.");
                 }
             }
         });
      }
      

      Nota: Reemplaza “context” con el contexto de tu RecyclerView.

    4. No olvides liberar el RewardedAd en el método onDestroy() de la clase Adapter.

      @Override
      public void onDestroy() {
         if (mRewardedAd != null) {
             mRewardedAd = null;
         }
         super.onDestroy();
      }
      

    ¡Eso es todo! Has implementado correctamente los anuncios de video recompensados en la clase Adapter de tu RecyclerView.

Comments are closed.