首页 > 解决方案 > 在测试广告上没有使用 Firebase Admob 插件触发印象事件?

问题描述

我在我的 Flutter 应用程序上实现了一个横幅广告,使用测试广告一切正常,除了我无法在侦听器中检测到“印象”事件。其他事件(如“加载”和“打开”)可以正常检测,但不能检测到“印象”事件。

Firebase 上的 DebugView 事件也不会显示自动收集的事件 ad_query、ad_impression 和 ad_exposure。但是它确实显示了 ad_click 事件。

这是测试广告的正常行为吗?我只是在使用真实的广告 ID 之前进行确认。

如果重要的话,我的代码看起来像这样,重试逻辑看起来不错吗?

  BannerAd _bannerAd;

  BannerAd createBannerAd() {
    return BannerAd(
      adUnitId: BannerAd.testAdUnitId,
      size: AdSize.smartBanner,
      targetingInfo: targetingInfo,
      listener: (MobileAdEvent event) {
        if (event == MobileAdEvent.failedToLoad) {
           // retry loading ad
          _loadAd(); 
          print("Ad Failed to load, retrying");
        }
        if (event == MobileAdEvent.impression) {
          print("Impression");
        }
        print("------BannerAd event :$event");
      },
    );
  }

  _loadAd() async {
    // duration to wait before showing ad
    var _duration = new Duration(seconds: 5);

    return new Timer(_duration, () {
      _bannerAd?.dispose();
      _bannerAd = createBannerAd()..load();
      _bannerAd..show();
    });
  }

  @override
  void initState() {
    super.initState();
    FirebaseAdMob.instance.initialize(appId: FirebaseAdMob.testAppId);
    _bannerAd?.dispose();
    // Run timer to show ad after certain delay
    _loadAd();
  }

  @override
  void dispose() {
    _bannerAd?.dispose();
    super.dispose();
  }

标签: admobflutter

解决方案


推荐阅读