激励广告SDK的导入:
import 'package:anythink_sdk/at_index.dart';
如果需要通过开发者的服务器进行奖励的下发(部分广告平台支持服务器激励),则要传以下参数,传入后将透传到开发者的服务器。
kATAdLoadingExtraUserIDKey(): String,必传,用于标识每个用户,
kATAdLoadingExtraUserDataKeywordKey():String,选传,用户自定义一些参数。
_loadRewardedVideo() async {
await ATRewardedManager.loadRewardedVideo(
placementID: 'you placementId',
extraMap: {
ATRewardedManager.kATAdLoadingExtraUserDataKeywordKey(): '1234',
ATRewardedManager.kATAdLoadingExtraUserIDKey(): '1234',
});
}
使用以下代码判断是否有广告缓存:
_hasAdReady() async {
await ATRewardedManager
.rewardedVideoReady(
placementID: 'you placementId',
).then((value) {
print('广告视频缓存$value');
});
}
使用以下代码获取广告状态(返回值类型为Map) key-value如下:
1、isLoading:是否正在加载
2、isReady:是否有广告缓存
3、adInfo:当前优先级最高的广告缓存信息
_checkAdStatus() async {
await ATRewardedManager
.checkRewardedVideoLoadStatus(
placementID: 'you placementId',
).then((value) {
print('广告视频状态$value');
});
}
获取当前广告位下所有可用广告的信息
getRewardedVideoValidAds() async {
await ATRewardedManager.getRewardedVideoValidAds(
placementID: Configuration.rewarderPlacementID,)
.then((value) {
print('激励视频当前广告位下$value');
});
}
展示激励视频只要调用展示api并传递展示广告位ID
_showAd() async {
await ATRewardedManager
.showRewardedVideo(
placementID: 'you placementId',
);
}
当使用场景功能时,通过此api展示广告,参数为:广告位ID+场景ID(场景ID可通过Taku后台创建)
showSceneNativeAd() async {
await ATRewardedManager
.showSceneRewardedVideo(
sceneID: 'you sceneID',
placementID: 'you placementId',
);
}
ATRewardResponse属性介绍:
RewardedStatus: 激励视频状态
placementID: placementID
requestMessage: 请求信息(错误信息)
extraMap: 回调信息
isDeeplinkSuccess: isDeeplinkSuccess
可查看下面的示例代码:
_rewarderListen() {
ATListenerManager.rewardedVideoEventHandler.listen((value) {
switch (value.rewardStatus) {
//广告加载失败
case RewardedStatus.rewardedVideoDidFailToLoad:
print("flutter rewardedVideoDidFailToLoad ---- placementID: ${value.placementID} ---- errStr:${value.requestMessage}");
break;
//广告加载成功
case RewardedStatus.rewardedVideoDidFinishLoading:
print("flutter rewardedVideoDidFinishLoading ---- placementID: ${value.placementID}");
break;
//广告开始播放
case RewardedStatus.rewardedVideoDidStartPlaying:
print("flutter rewardedVideoDidStartPlaying ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
//广告结束播放
case RewardedStatus.rewardedVideoDidEndPlaying:
print("flutter rewardedVideoDidEndPlaying ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
//广告播放失败
case RewardedStatus.rewardedVideoDidFailToPlay:
print("flutter rewardedVideoDidFailToPlay ---- placementID: ${value.placementID} ---- errStr:${value.extraMap}");
break;
//激励成功,建议在此回调中下发奖励
case RewardedStatus.rewardedVideoDidRewardSuccess:
print("flutter rewardedVideoDidRewardSuccess ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
//广告被点击
case RewardedStatus.rewardedVideoDidClick:
print("flutter rewardedVideoDidClick ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
//Deeplink
case RewardedStatus.rewardedVideoDidDeepLink:
print("flutter rewardedVideoDidDeepLink ---- placementID: ${value.placementID} ---- extra:${value.extraMap} ---- isDeeplinkSuccess:${value.isDeeplinkSuccess}");
break;
//广告被关闭
case RewardedStatus.rewardedVideoDidClose:
print("flutter rewardedVideoDidClose ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
//广告开始播放(只针对穿山甲的再看一个广告)
case RewardedStatus.rewardedVideoDidAgainStartPlaying:
print("flutter rewardedVideoDidAgainStartPlaying ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
//广告结束播放(只针对穿山甲的再看一个广告)
case RewardedStatus.rewardedVideoDidAgainEndPlaying:
print("flutter rewardedVideoDidAgainEndPlaying ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
//广告播放失败(只针对穿山甲的再看一个广告)
case RewardedStatus.rewardedVideoDidAgainFailToPlay:
print("flutter rewardedVideoDidAgainFailToPlay ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
//激励成功(只针对穿山甲的再看一个广告)
case RewardedStatus.rewardedVideoDidAgainRewardSuccess:
print("flutter rewardedVideoDidAgainRewardSuccess ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
//广告被点击(只针对穿山甲的再看一个广告)
case RewardedStatus.rewardedVideoDidAgainClick:
print("flutter rewardedVideoDidAgainClick ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
case RewardedStatus.rewardedVideoUnknown:
print("flutter rewardedVideoUnknown");
break;
}
});
}