我应该用什么替换已弃用的 Facebook InterstitialAd setAdListener?
What should I replace deprecated Facebook InterstitialAd setAdListener?
从 v5.6.1 开始,interstitialAd.setAdListener 已弃用。我现在应该用什么替换已弃用的 Facebook InterstitialAd setAdListener?
Deprecated. since 5.6, use loadAd(InterstitialAd.InterstitialLoadAdConfig)
您可以通过调用 buildLoadAdConfig()
获得此配置,您可以在那里执行 withAdListener(InterstitialAdListener adListener)
。
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'
如果有人需要,我附上了适用于我的完整代码:
//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
从 v5.6.1 开始,interstitialAd.setAdListener 已弃用。我现在应该用什么替换已弃用的 Facebook InterstitialAd setAdListener?
Deprecated. since 5.6, use loadAd(InterstitialAd.InterstitialLoadAdConfig)
您可以通过调用 buildLoadAdConfig()
获得此配置,您可以在那里执行 withAdListener(InterstitialAdListener adListener)
。
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'
如果有人需要,我附上了适用于我的完整代码:
//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