Чем я должен заменить устаревший Facebook InterstitialAd setAdListener? - PullRequest
1 голос
/ 17 февраля 2020

Начиная с v5.6.1, interstitialAd.setAdListener устарел. Что я должен заменить устаревшую Facebook InterstitialAd setAdListener Facebook?

Ответы [ 3 ]

1 голос
/ 06 апреля 2020

Если кому-то нужно, я приложил полный код, который работает для меня:

//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

0 голосов
/ 05 марта 2020
 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)

, и когда вы хотите показать промежуточную рекламу, тогда

if (interstitialAdFb.isAdLoaded)
        interstitialAdFb.show()

этот код для использования

implementation 'com.facebook.android:audience-network-sdk:5.6.1'
0 голосов
/ 17 февраля 2020

С 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) on.

...