Skip to content

激励视频 ​

1. 主要API ​

1.1 请求类 ​

ApexAdxAdRequest

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

1.2 激励视频对象类 ​

ApexAdxRewardAd

方法说明
ApexAdxRewardAd({required ApexAdxAdRequest request, required ApexAdxRewardListener<ApexAdxRewardAd> listener})初始化激励视频广告对象,request 为广告请求对象,必传,listener 激励视频接口必传
fetchAd()发起广告加载
isAvailable()判断当前广告是否存在可展示的广告
displayAd({Map<String, String>? options})展示广告,可选传入扩展参数
release()销毁广告

1.3 激励视频奖励对象 ​

ApexAdxRewardInfo

属性说明
bool isReward是否发放奖励
String transId交易ID
String errorCode错误码
String errorMsg错误信息

1.4 激励视频回调说明 ​

ApexAdxRewardListener 激励视频回调说明

回调方法说明
onAdLoaded(ApexAdxRewardAd ad)广告加载成功,可在此方法判断 isAvailable 后,调用 displayAd 来展示广告
onAdFailedToLoad(ApexAdxError error)广告加载失败
onAdDisplayed()广告曝光
onAdTapped()广告被用户点击
onAdDismissed()广告关闭
onRewardGranted(ApexAdxRewardInfo rewardInfo)广告获得奖励,参数:广告奖励对象
onVideoCompleted()广告视频播放结束

2. 示例代码 ​

2.1 创建激励广告对象 ​

dart
ApexAdxAdRequest request = ApexAdxAdRequest(pid: pid);
ApexAdxRewardAd rewardAd = ApexAdxRewardAd(request: request, listener: listener);

2.2 设置监听回调 ​

dart
class IApexAdxRewardListener extends ApexAdxRewardListener<ApexAdxRewardAd> {

  @override
  void onAdTapped() {
    print('onAdTapped');
  }

  @override
  void onAdDismissed() {
    print('onAdDismissed');
  }

  @override
  void onAdDisplayed() {
    print('onAdDisplayed');
  }

  @override
  void onAdFailedToLoad(ApexAdxError error) {
    print('onAdFailedToLoad: ${error.message}');
  }

  @override
  void onRewardGranted(ApexAdxRewardInfo rewardInfo) {
    print('ApexAdxRewardInfo:$rewardInfo');
  }

  @override
  void onAdLoaded(ApexAdxRewardAd ad) {
    print('onAdLoaded');
  }

  @override
  void onVideoCompleted() {
    print('onVideoCompleted');
  }
}

2.3 激励视频广告加载 ​

dart
rewardAd.fetchAd();

2.4 激励视频广告播放 ​

dart
bool isReady = await rewardAd.isAvailable();

if (isReady) {
  rewardAd.displayAd();
} else {
  loadAd();
}

2.5 激励视频预加载注意事项 ​

  • 需要在平台开启预加载功能。
  • 开启预加载功能后,sdk内部会在广告播放中再次去请求广告。
  • 开启预加载功能后,要注意全局使用同一个 ApexAdxRewardAd 对象。(new注意判null)
  • 广告播放时可先判断 isAvailable(),如果 ready 直接播放,否则可再次调用 fetchAd()。
dart
ApexAdxRewardAd? rewardVideoAd; // 全局对象

/**
 * 加载广告
 */
void loadAd() {
  if (rewardVideoAd == null) {
    ApexAdxAdRequest request = ApexAdxAdRequest(pid: pid);
    rewardVideoAd = ApexAdxRewardAd(request: request, listener: listener);
  }

  rewardVideoAd!.fetchAd();
}

ApexAdx SDK Documentation