插页式广告未覆盖某些设备的所有屏幕

问题描述 投票:0回答:1

在我的 flutter 应用程序中,插页式广告没有覆盖所有屏幕, 我测试我的应用程序和空白应用程序相同的问题,使用屏幕顶部没有被同一设备中的广告覆盖,例如(Pixel 6 Pro API 34 emautor)我的flutter最新版本,我使用google_mobile_ads:^4.0.0包

void _createInterstitialAd() {
    InterstitialAd.load(
        adUnitId:'ca-app-pub-3940256099942544/1033173712',
          
        request: request,
        adLoadCallback: InterstitialAdLoadCallback(
          onAdLoaded: (InterstitialAd ad) {
            print('$ad loaded');
            _interstitialAd = ad;
            _numInterstitialLoadAttempts = 0;
            _interstitialAd!.setImmersiveMode(true);
          },
          onAdFailedToLoad: (LoadAdError error) {
            print('InterstitialAd failed to load: $error.');
            _numInterstitialLoadAttempts += 1;
            _interstitialAd = null;
            if (_numInterstitialLoadAttempts < 3) {
              _createInterstitialAd();
            }
          },
        ));
  }



void _showInterstitialAd() {
    if (_interstitialAd == null) {
      print('Warning: attempt to show interstitial before loaded.');
      return;
    }
    _interstitialAd!.fullScreenContentCallback = FullScreenContentCallback(
      onAdShowedFullScreenContent: (InterstitialAd ad) =>
          print('ad onAdShowedFullScreenContent.'),
      onAdDismissedFullScreenContent: (InterstitialAd ad) {
        print('$ad onAdDismissedFullScreenContent.');
        ad.dispose();
        _createInterstitialAd();
      },
      onAdFailedToShowFullScreenContent: (InterstitialAd ad, AdError error) {
        print('$ad onAdFailedToShowFullScreenContent: $error');
        ad.dispose();
        _createInterstitialAd();
      },
    );
    _interstitialAd!.show();
    _interstitialAd = null;
  }

 @override
  void initState() {
   _createInterstitialAd();
   // checkconsent();
    super.initState();
  }

enter image description here

flutter dart admob
1个回答
0
投票

此处发生的情况取决于显示插页式广告之前显示的支架。我还没有找到完整的解决方案,但是使用类似的方法可以让我清空您的情况下的绿色区域。我在显示插页式广告之前使用

setState(() { displayState = states.blank; });

enum states { blank, playing, ... }

states displayState;

...
  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [

        // interstitial state
        if (displayState == states.blank)
          Container(),

        if (displayState == states.playing)
          Container(
            color: Colors.Green,
            child: [ your typical display widget build is here ]
          )
...
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.