Мне нужно запросить и отобразить баннерную рекламу трех разных размеров от Google.
Предполагается, что это объявление должно отображаться в прокручиваемом столбце, поэтому я должен установить его высоту. Проблема в том, что когда объявление загружается, у меня нет информации о загруженном объявлении, это может быть любое из трех.Если я не устанавливайте высоту, она либо скрыта, либо возникла ошибка, что высота не может быть бесконечной.
примечание: во фрагменте задается только временный размер, потому что я этого не делаю узнайте, как получить правильный.
Код: Выделить всё
Future loadAd() async {
_bannerAd = AdManagerBannerAd(
adUnitId: adUnitId,
request: const AdManagerAdRequest(),
sizes: [
const AdSize(width: 300, height: 100),
const AdSize(width: 300, height: 250),
const AdSize(width: 300, height: 600)
],
listener: AdManagerBannerAdListener(
onAdLoaded: (ad) {
if (!mounted) {
ad.dispose();
return;
}
debugPrint('$ad loaded.');
setState(() {
_isLoaded = true;
});
},
onAdFailedToLoad: (ad, error) {
debugPrint('AdManagerBannerAd failed to load: $error');
ad.dispose();
},
))
..load();
}
@override
void dispose() {
_bannerAd?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return _isLoaded && _bannerAd != null
? Align(
alignment: Alignment.bottomCenter,
child: SafeArea(
child: SizedBox(
width: _bannerAd!.sizes[0].width.toDouble(),
height: _bannerAd!.sizes[0].height.toDouble(),
child: AdWidget(ad: _bannerAd!),
),
),
)
: const SizedBox
.shrink();
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... for-the-ad