【问题标题】:What should I replace deprecated Facebook InterstitialAd setAdListener?我应该用什么替换已弃用的 Facebook InterstitialAd setAdListener?
【发布时间】:2020-02-17 14:45:10
【问题描述】:

从 v5.6.1 开始,不推荐使用 interstitialAd.setAdListener。我现在应该用什么替换已弃用的 Facebook InterstitialAd setAdListener?

【问题讨论】:

    标签: android ads interstitial facebook-audience-network


    【解决方案1】:

    上面写着https://developers.facebook.com/docs/audience-network/reference/android/com/facebook/ads/interstitialad.html/?version=v5.6.1

    已弃用。从 5.6 开始,使用 loadAd(InterstitialAd.InterstitialLoadAdConfig)

    您可以通过调用buildLoadAdConfig() 来获取此配置,然后您可以在此处执行withAdListener(InterstitialAdListener adListener)

    【讨论】:

      【解决方案2】:
       val interstitialAdFb = com.facebook.ads.InterstitialAd(mContext, resources.getString(R.string.fb_interstitial_id))
          val adListener = object : com.facebook.ads.InterstitialAdListener {
              override fun onLoggingImpression(p0: Ad?) {
                  TODO("Not yet implemented")
              }
              override fun onInterstitialDisplayed(p0: Ad?) {
                  TODO("Not yet implemented")
              }
              override fun onAdClicked(p0: Ad?) {
                  TODO("Not yet implemented")
              }
              override fun onInterstitialDismissed(p0: Ad?) {
      
              }
      
              override fun onError(p0: Ad?, p1: AdError?) {
      
              }
      
              override fun onAdLoaded(p0: Ad?) {
      
              }
          }
      
          val loadAdConfig = interstitialAdFb.buildLoadAdConfig()
                  .withAdListener(adListener)
                  .build()
      
          interstitialAdFb.loadAd(loadAdConfig)
      

      当你想展示 fb 插页式广告时

      if (interstitialAdFb.isAdLoaded)
              interstitialAdFb.show()
      

      使用时的代码

      implementation 'com.facebook.android:audience-network-sdk:5.6.1'
      

      【讨论】:

        【解决方案3】:

        如果有人需要,我附上了适合我的完整代码:

        //Add this line to your manifest, you can add this line in application tag for the whole app or in specific activity tag where you want to put Interstitial ad.
        
            android:hardwareAccelerated="true"
        
        //Activity code
            private InterstitialAd interstitialAd;
            public static boolean isAdLoadedOnce = false;
        
        //onCreate
        interstitialAd = new InterstitialAd(this, "Placement_id");
                interstitialAd.loadAd(interstitialAd.buildLoadAdConfig()
                .withAdListener(new InterstitialAdListener() {
                    @Override
                    public void onInterstitialDisplayed(Ad ad) {
                        isAdLoadedOnce = true;
                    }
        
                    @Override
                    public void onInterstitialDismissed(Ad ad) {
        
                    }
        
                    @Override
                    public void onError(Ad ad, AdError adError) {
        
                    }
        
                    @Override
                    public void onAdLoaded(Ad ad) {
        
                    }
        
                    @Override
                    public void onAdClicked(Ad ad) {
        
                    }
        
                    @Override
                    public void onLoggingImpression(Ad ad) {
        
                    }
                })
                .withCacheFlags(ALL)
                .build());
        
        //I have shown the ad in onBackPressed(), you can show wherever you want
        public void onBackPressed() {
        
                if (!isAdLoadedOnce && interstitialAd.isAdLoaded() && !interstitialAd.isAdInvalidated()) {
                    interstitialAd.show();
        
                } else {
                    super.onBackPressed();
                }
            }
        
        //Also need to override this method
        @Override
            protected void onDestroy() {
               if (interstitialAd != null) {
                    interstitialAd.destroy();
                }
                super.onDestroy();
            }
        

        详情:https://developers.facebook.com/docs/audience-network/changelog-android#5_6_0

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-08-21
          • 1970-01-01
          • 2021-12-30
          • 2016-08-10
          • 1970-01-01
          • 2016-10-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多