web-dev-qa-db-ja.com

コールバックを取得するために非推奨のFacebook adView setAdListenerを置き換える必要があるのは何ですか?

V5.6.0以降、adView.setAdListenerは廃止されました。今、どうすればonAdLoadedおよびonErrorコールバックを受け取ることができますか?

6
galaxigirl
val interstitialAdFb = com.facebook.ads.InterstitialAd(this, 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)

    //and when you want to show ad
    if (interstitialAdFb.isAdLoaded)
        interstitialAdFb.show()
1
Abdur Rehman

バナー広告コード:setAdListenerメソッドの問題を解決するには非推奨

以下のコードを使用してバナー広告のsetAdlistener()メソッドを置き換えます:

 AdView adView = new AdView(context, context.getString(R.string.str_facebook_banner), AdSize.BANNER_HEIGHT_90);

    AdListener adListener = new AdListener() {
        @Override
        public void onError(Ad ad, AdError adError) {
            Log.e(TAG, "Fb failed :: " + adError.toString());
        }

        @Override
        public void onAdLoaded(Ad ad) {
            Log.e(TAG, "onAdLoaded: ");

        }

        @Override
        public void onAdClicked(Ad ad) {

        }

        @Override
        public void onLoggingImpression(Ad ad) {

        }
    };


    AdView.AdViewLoadConfig loadAdConfig = adView.buildLoadAdConfig()
            .withAdListener(adListener)
            .build();
    adView.loadAd(loadAdConfig);

インタースティシャル広告コード:setAdListenerメソッドの問題を解決するには非推奨

以下のコードを使用して、インタースティシャル広告のsetAdListener()メソッドを置き換えることができます:

    InterstitialAd  interstitialAd = new InterstitialAd(context, context.getString(R.string.str_facebook_interstitial));

    InterstitialAdListener interstitialAdListener = new InterstitialAdListener() {
        @Override
        public void onInterstitialDisplayed(Ad ad) {

        }

        @Override
        public void onInterstitialDismissed(Ad ad) {

        }

        @Override
        public void onError(Ad ad, AdError adError) {
            Log.e(TAG, "Fb failed :: " + adError.toString());
        }

        @Override
        public void onAdLoaded(Ad ad) {
            Log.e(TAG, "onAdLoaded: ");
            interstitialAd.show();
        }

        @Override
        public void onAdClicked(Ad ad) {

        }

        @Override
        public void onLoggingImpression(Ad ad) {

        }
    };



    interstitialAd.loadAd(interstitialAd.buildLoadAdConfig()
            .withAdListener(interstitialAdListener)
            .withCacheFlags(ALL)
            .build());
}

公式参照リンク:https://developers.facebook.com/docs/audience-network/changelog-Android#5_6_

0
CodeInsideCofee