【问题标题】:RewardedVideoAd MobileAds.getRewardedVideoAdInstance(this) is deprecated. What is the new alternative?RewardedVideoAd MobileAds.getRewardedVideoAdInstance(this) 已弃用。什么是新的替代方案?
【发布时间】:2021-01-01 07:56:37
【问题描述】:

RewardedVideoAd 已弃用。什么是新的替代品?

    void loadAds(){

        RewardedVideoAd mRewardedVideoAd;
        mRewardedVideoAd.loadAd(rewarded_id, new AdRequest.Builder().build());
        mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);

        mRewardedVideoAd.setRewardedVideoAdListener(new RewardedVideoAdListener() {
        @Override
        public void onRewardedVideoAdLoaded() {
            AppUtils.showLog("REWARDED", "onRewardedVideoAdLoaded");
        }
        .....
        .....

    }

【问题讨论】:

    标签: android ads deprecated admob-rewardedvideoad google-ads-api


    【解决方案1】:

    现在应该使用一个新类 RewardedAd。见the Google API docs here

    【讨论】:

      【解决方案2】:

      这是实施新的 RewardVideoAd 的新方法。通过此official website 找到。

      加载广告

      import com.google.android.gms.ads.rewarded.RewardedAd;
      
      public class MainActivity extends Activity {
      
      private RewardedAd rewardedAd;
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          ...
          rewardedAd = new RewardedAd(this,
              "ca-app-pub-3940256099942544/5224354917");
      
          RewardedAdLoadCallback adLoadCallback = new RewardedAdLoadCallback() {
              @Override
              public void onRewardedAdLoaded() {
                  // Ad successfully loaded.
              }
      
             @Override
              public void onRewardedAdFailedToLoad(LoadAdError adError) {
                  // Ad failed to load.
              }
          };
          rewardedAd.loadAd(new AdRequest.Builder().build(), adLoadCallback);
      }
      }
      

      展示广告

      myButton.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
          if (rewardedAd.isLoaded()) {
              Activity activityContext = MainActivity.this
              RewardedAdCallback adCallback = new RewardedAdCallback() {
                  @Override
                  public void onRewardedAdOpened() {
                      // Ad opened.
                  }
      
                  @Override
                  public void onRewardedAdClosed() {
                      // Ad closed.
                  }
      
                  @Override
                  public void onUserEarnedReward(@NonNull RewardItem reward) {
                      // User earned reward.
                  }
      
                  @Override
                  public void onRewardedAdFailedToShow(AdError adError) {
                      // Ad failed to display.
                  }
              };
              rewardedAd.show(activityContext, adCallback);
          } else {
              Log.d("TAG", "The rewarded ad wasn't loaded yet.");
          }
      }
      });
      

      使用 RewardedAdCallback 预加载下一个激励广告

      public RewardedAd createAndLoadRewardedAd() {
          RewardedAd rewardedAd = new RewardedAd(this,
                  "ca-app-pub-3940256099942544/5224354917");
          RewardedAdLoadCallback adLoadCallback = new RewardedAdLoadCallback() {
              @Override
              public void onRewardedAdLoaded() {
                  // Ad successfully loaded.
              }
      
              @Override
              public void onRewardedAdFailedToLoad(LoadAdError adError) {
                  // Ad failed to load.
              }
          };
          rewardedAd.loadAd(new AdRequest.Builder().build(), adLoadCallback);
          return rewardedAd;
      }
      
      @Override
      public void onRewardedAdClosed() {
          this.rewardedAd = createAndLoadRewardedAd();
      }
      

      【讨论】:

      • 现在也已弃用。答案应该更新了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      • 1970-01-01
      • 2016-08-16
      相关资源
      最近更新 更多