gpt4 book ai didi

进入另一个屏幕时,Flutter、Facebook Audience Network 广告横幅不显示

转载 作者:行者123 更新时间:2023-12-04 04:10:42 27 4
gpt4 key购买 nike

我用这个插件

facebook_audience_network 0.5.0

我是这样实现的

class FacebookAd{

static void faceInit() {
FacebookAudienceNetwork.init(
testingId: "xxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxx",
);
}

static widget myBanner;

static void showBannerAd() {
myBanner = FacebookBannerAd(
placementId: "xxxxxxxxx_xxxxxxxxxxx",
keepAlive: true,
bannerSize: BannerSize.STANDARD,
listener: (result, value) {
print("Banner Ad: $result --> $value eee");
switch (result) {
case BannerAdResult.ERROR:
print("Error: $value");
break;
case BannerAdResult.LOADED:
print("Loaded: $value");
break;
case BannerAdResult.CLICKED:
print("Clicked: $value");
break;
case BannerAdResult.LOGGING_IMPRESSION:
print("Logging Impression: $value");
break;
}
},
);
}
}

}

来自其他类(class)

 return Scaffold(
bottomNavigationBar: FacebookAd.myBanner
)

所以在应用程序中,所有屏幕都引用变量“myBanner”以在“bottomNavigationBar”中显示横幅

但问题是使用 pushNamed("/xxx") 更改屏幕时

有时屏幕显示横幅,有时不显示! (大部分不是)

我该如何解决这个问题?

谢谢

最佳答案

以下是我如何解决不同页面的 FAN 插页式广告问题,与 AdMob 不同,您应该在单独的 dart 类中集中管理 Facebook FAN 广告。

class MyFacebookAdsManager {
static bool isInterstitialAdLoaded = false;
static String adsInterstitialUnitId = '';

static void init(String id) {
logger.i('$prefix init called');
adsInterstitialUnitId = id;
FacebookAudienceNetwork.init(
testingId: '<test-id-if-needed>',
);
loadNewFANInterstitialAd();
}

static void loadNewFANInterstitialAd() {
FacebookInterstitialAd.loadInterstitialAd(
placementId: adsInterstitialUnitId,
listener: (result, value) {
logger.i("$prefix >> FAN > Interstitial Ad: $result --> $value");
switch (result) {
case InterstitialAdResult.LOADED:
isInterstitialAdLoaded = true;
break;

case InterstitialAdResult.DISMISSED:
isInterstitialAdLoaded = false;
loadNewFANInterstitialAd();
break;
case InterstitialAdResult.ERROR:
isInterstitialAdLoaded = false;
logger.e('error loading facebook ads');
loadNewFANInterstitialAd();
break;
default:
}
},
);
}

static void showInterstitialAd() {
if (isInterstitialAdLoaded)
FacebookInterstitialAd.showInterstitialAd();
else
loadNewFANInterstitialAd();
}
}

现在在主屏幕中,您将只调用一次 init。

MyFacebookAdsManager.init('test-id')

最后,无论您要在何处展示广告,请使用创建的类并展示广告。

MyFacebookAdsManager.showInterstitialAd();

以同样的方式,您应该创建单独的类并管理所有横幅和奖励视频。

关于进入另一个屏幕时,Flutter、Facebook Audience Network 广告横幅不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61787686/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com