Skip to content

横幅广告

1. 接口API说明

1.1 横幅广告请求类

AdRequest

参数说明
placementId广告位
userId媒体用户体系ID ,可选 ,默认null
options扩展参数,默认null

1.2 横幅广告对象类

WindmillBannerAd

方法说明
WindmillBannerAd(required AdRequest request, required WindmillBannerListener
WindmillBannerAd
listener)
初始化横幅广告对象,request 为广告请求对象,必传, listener 横幅广告回调接口 必传
loadAd()发起广告加
isReady()判断当前BannerAd是否存在可展示的广告
getAdInfo()获取广告信息
getCacheAdInfoList()查询当前广告位的所有缓存信息的AdInfo对象、在广告加载成功后调用
destroy()销毁并关闭广告

1.2 横幅广告Widget对象类

BannerAdWidget

方法说明
BannerAdWidget({ required this.windmillBannerAd,
double this.width = 320,
double this.height = 0})
构造横幅广告Widget对象,
windmillBannerAd 横幅广告对象类,必传, width widget宽,
height widget 高度
updateAdSize(Size size)更新广告Widget 大小

1.3 横幅广告回调说明

WindmillBannerListener 横幅广告回调说明

回调方法说明
onAdFailedToLoad (WindmillBannerAd ad, WMError error)广告加载失败
onAdLoaded (WindmillBannerAd ad)广告加载成功
onAdOpened (WindmillBannerAd ad)广告开始展示
onAdShowError (WindmillBannerAd ad, WMError error)广告开始展示失败
onAdClicked (WindmillBannerAd ad)广告被用户点击
onAdClosed (WindmillBannerAd ad)广告关闭
onAdAutoRefreshed (WindmillBannerAd ad)自动刷新广告成功
onAdAutoRefreshFail (WindmillBannerAd ad,WMError error)自动刷新广告失败
onAdSourceStartLoading(WindmillBannerAd ad, AdInfo? adInfo)广告源开始加载回调
onAdSourceSuccess(WindmillBannerAd ad, AdInfo? adInfo)广告源广告填充回调
onAdSourceFailed(WindmillBannerAd ad, AdInfo? adInfo, WMError error)广告源加载失败回调
onBidAdSourceStart(WindmillBannerAd ad, AdInfo? adInfo)竞价广告源开始竞价回调
onBidAdSourceSuccess(WindmillBannerAd ad, AdInfo? adInfo)竞价广告源竞价成功回调
onBidAdSourceFailed(WindmillBannerAd ad, AdInfo? adInfo, WMError error)竞价广告源竞价失败回调

2. 示例代码

2.1 创建横幅广告对象

dart
AdRequest request = AdRequest(placementId: placementId);
WindmillBannerAd bannerAd = WindmillBannerAd( request:request, listener: listener);

2.1 设置监听回调

dart
class IWindmillBannerListener extends WindmillBannerListener<WindmillBannerAd> {

  @override
  void onAdAutoRefreshFail(WindmillBannerAd ad, WMError error) {
    print('flu-banner --- onAdAutoRefreshFail');
  }

  @override
  void onAdAutoRefreshed(WindmillBannerAd ad) {
    print('flu-banner --- onAdAutoRefreshed');
  }

  @override
  void onAdClicked(WindmillBannerAd ad) {
    print('flu-banner --- onAdClicked');
  }

  @override
  void onAdFailedToLoad(WindmillBannerAd ad, WMError error) {
    print('flu-banner --- onAdFailedToLoad -- ${error.toJson()}');

  }

  @override
  void onAdLoaded(WindmillBannerAd ad) {
    print('flu-banner --- onAdLoaded');
    
  }

  @override
  void onAdOpened(WindmillBannerAd ad) {
    print('flu-banner --- onAdOpened');
  }

  @override
  void onAdRemoved(WindmillBannerAd ad) {
    print('flu-banner --- onAdRemoved');
  }
  
  @override
  void onAdShowError(WindmillBannerAd ad,WMError error) {
    // TODO: implement onAdShowError
      print('flu-banner --- onAdShowError');
  }
  @override
  void onAdSourceFailed(WindmillBannerAd ad, AdInfo? adInfo, WMError error) {
    // TODO: implement onAdSourceFailed
    print("flu-banner --- onAdSourceFailed,adInfo:${adInfo?.toJson()}");
    c.callbacks.add('onAdShowError -- ${ad.request.placementId},adInfo:${adInfo?.toJson()},error: ${error.toJson()}');
  }
  
  @override
  void onAdSourceStartLoading(WindmillBannerAd ad, AdInfo? adInfo) {
    // TODO: implement onAdSourceStartLoading
    print("flu-banner --- onAdSourceStartLoading,adInfo:${adInfo?.toJson()}");
    c.callbacks.add('onAdSourceStartLoading -- ${ad.request.placementId},adInfo:${adInfo?.toJson()}');
  }
  
  @override
  void onAdSourceSuccess(WindmillBannerAd ad, AdInfo? adInfo) {
    // TODO: implement onAdSourceSuccess
     print("flu-banner --- onAdSourceSuccess,adInfo:${adInfo?.toJson()}");
     c.callbacks.add('onAdSourceSuccess -- ${ad.request.placementId},adInfo:${adInfo?.toJson()}');
  }
  
  @override
  void onBidAdSourceFailed(WindmillBannerAd ad, AdInfo? adInfo, WMError error) {
    // TODO: implement onBidAdSourceFailed
    print("flu-banner --- onBidAdSourceFailed,adInfo:${adInfo?.toJson()}");
    c.callbacks.add('onAdShowError -- ${ad.request.placementId},adInfo:${adInfo?.toJson()},error: ${error.toJson()}');
  }
  
  @override
  void onBidAdSourceStart(WindmillBannerAd ad, AdInfo? adInfo) {
    // TODO: implement onBidAdSourceStart
    print("flu-banner --- onBidAdSourceStart,adInfo:${adInfo?.toJson()}");
    c.callbacks.add('onBidAdSourceStart -- ${ad.request.placementId},adInfo:${adInfo?.toJson()}');
  }
  
  @override
  void onBidAdSourceSuccess(WindmillBannerAd ad, AdInfo? adInfo) {
    // TODO: implement onBidAdSourceSuccess
     print("flu-banner --- onBidAdSourceSuccess,adInfo:${adInfo?.toJson()}");
     c.callbacks.add('onBidAdSourceSuccess -- ${ad.request.placementId},adInfo:${adInfo?.toJson()}');
  }
}

2.2 横幅广告加载

C#
bannerAd.loadAd();

2.3 横幅广告播放

dart
bool isReady = await bannerAd.isReady();
if(isReady){
  BannerAdWidget bannerAdWidget = BannerAdWidget(
    windmillBannerAd: bannerAd,
    height: 50,
    width: 320,
  );
}