主题
激励视频
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();
}