Использование InterstitialAd с InterstitialAdListener. Получение сообщения об ошибке

#java #android #facebook-audience-network

#java #Android #facebook-аудитория-сеть

Вопрос:

Я получаю эту ошибку при использовании InterstitialAdListener

  Anonymous class derived from InterstitialAdListener' must either be declared > abstract or implement abstract method 'onInterstitialDismissed(Ad) in 
'InterstitialAdListener' 
  

InterstitialAdListener Подчеркнуто красным цветом.

Я попытался уменьшить его до com.facebook.ads.AdListener , но у меня тоже не работает, я обновил SDK, чтобы посмотреть, решит ли это проблему, но не повезло.

Как я могу решить эту проблему?

 
    private void initInterstitialAdPrepare() {
            interstitialAd = new InterstitialAd(this, "xxxxxxxx_xxxxxxxxx");
            interstitialAd.setAdListener(new InterstitialAdListener() {

                    @Override
                public void onInterstitialDisplayed(Ad ad) {
                    // Interstitial ad displayed callback
                    Log.e(TAG, "Interstitial ad displayed.");
                }

                @Override
                public void onError(Ad ad, AdError adError) {
                    // Ad error callback
                    Log.e(TAG, "Interstitial ad failed to load: "   adError.getErrorMessage());
                }



                @Override
                public void onAdLoaded(Ad ad) {
                    // Interstitial ad is loaded and ready to be displayed
                    Log.d(TAG, "Interstitial ad is loaded and ready to be displayed!");


                    }

                    // Show the ad
                    interstitialAd.show();
                }
  

Ответ №1:

Вызовите это в onCreate

 private void requestInterstitialAd(){
    interstitialAd = new InterstitialAd(this, getResources().getString(R.string.interstitial_ad_id)); //YOUR_PLACEMENT_ID
    interstitialAd.loadAd();
}
  

Используйте этот код там, где вы хотите загрузить ad, и для заставки используйте его, как только ваш таймер заставки будет завершен

 if(interstitialAd.isAdLoaded()) {
        interstitialAd.show();
        interstitialAd.setAdListener(new InterstitialAdListener() {

            @Override
            public void onError(Ad ad, AdError adError) {
            }
            @Override
            public void onInterstitialDismissed(Ad ad) {
                requestInterstitialAd();
                //Perform your functionality here
            }
            @Override
            public void onInterstitialDisplayed(Ad ad) {
            }
            @Override
            public void onAdLoaded(Ad ad) {
            }
            @Override
            public void onAdClicked(Ad ad) {
            }
            @Override
            public void onLoggingImpression(Ad ad) {

            }
        });
    }
    else {
        requestInterstitialAd();
        //Perform your functionality here in case ad is not loaded before
    }