V5.6.0以降、adView.setAdListenerは廃止されました。今、どうすればonAdLoadedおよびonErrorコールバックを受け取ることができますか?
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()
バナー広告コード: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_