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