Import of rewarded advertising SDK:
import 'package:anythink_sdk/at_index.dart';
If you need to distribute rewards through the developer's server (some advertising platforms support S2S Rewarded Callbacks), you need to pass the following parameters, which will be transparently transmitted to the developer's server.
Key | Type | required | Description |
---|---|---|---|
kATAdLoadingExtraUserIDKey | String | YES | used to identify each user |
kATAdLoadingExtraUserDataKeywordKey | String | NO | user-defined parameters |
_loadRewardedVideo() async {
await ATRewardedManager.loadRewardedVideo(
placementID: 'you placementId',
extraMap: {
ATRewardedManager.kATAdLoadingExtraUserDataKeywordKey(): '1234',
ATRewardedManager.kATAdLoadingExtraUserIDKey(): '1234',
});
}
Use the following code to determine if there is an AD cache:
_hasAdReady() async {
await ATRewardedManager
.rewardedVideoReady(
placementID: 'you placementId',
).then((value) {
print('Advertising video cache $value');
});
}
Gets information about all available ads under the current AD space
getRewardedVideoValidAds() async {
await ATRewardedManager.getRewardedVideoValidAds(
placementID: Configuration.rewarderPlacementID,)
.then((value) {
print(' Advertising video info $value');
});
}
To display rewarded videos, just call the display api and pass the display slot ID
_showAd() async {
await ATRewardedManager
.showRewardedVideo(
placementID: 'you placementId',
);
}
When using the scene function, display ads through this API, the parameters are: advertising space ID + scene ID (scene ID can be created through the TopOn background)
showSceneNativeAd() async {
await ATRewardedManager
.showSceneRewardedVideo(
sceneID: 'you sceneID',
placementID: 'you placementId',
);
}
ATRewardResponse attribute introduction:
RewardedStatus: Rewarded video status
placementID: placementID
requestMessage: Request information (error message)
extraMap: Callback information
isDeeplinkSuccess: isDeeplinkSuccess
You can view the sample code below:
_rewarderListen() {
ATListenerManager.rewardedVideoEventHandler.listen((value) {
switch (value.rewardStatus) {
// ad load fail
case RewardedStatus.rewardedVideoDidFailToLoad:
print("flutter rewardedVideoDidFailToLoad ---- placementID: ${value.placementID} ---- errStr:${value.requestMessage}");
break;
// ad load finish
case RewardedStatus.rewardedVideoDidFinishLoading:
print("flutter rewardedVideoDidFinishLoading ---- placementID: ${value.placementID}");
break;
// ad video start play
case RewardedStatus.rewardedVideoDidStartPlaying:
print("flutter rewardedVideoDidStartPlaying ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
// ad video start end
case RewardedStatus.rewardedVideoDidEndPlaying:
print("flutter rewardedVideoDidEndPlaying ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
// ad video fail to play
case RewardedStatus.rewardedVideoDidFailToPlay:
print("flutter rewardedVideoDidFailToPlay ---- placementID: ${value.placementID} ---- errStr:${value.extraMap}");
break;
// The rewarded is successful, it is recommended to issue the reward in this callback
case RewardedStatus.rewardedVideoDidRewardSuccess:
print("flutter rewardedVideoDidRewardSuccess ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
// ad video clicked
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;
// ad video closed
case RewardedStatus.rewardedVideoDidClose:
print("flutter rewardedVideoDidClose ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
// ad video again start play(only TT)
case RewardedStatus.rewardedVideoDidAgainStartPlaying:
print("flutter rewardedVideoDidAgainStartPlaying ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
// ad video again play end(only TT)
case RewardedStatus.rewardedVideoDidAgainEndPlaying:
print("flutter rewardedVideoDidAgainEndPlaying ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
// ad video again fail to play(only TT)
case RewardedStatus.rewardedVideoDidAgainFailToPlay:
print("flutter rewardedVideoDidAgainFailToPlay ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
// ad video again rewarded success(only TT)
case RewardedStatus.rewardedVideoDidAgainRewardSuccess:
print("flutter rewardedVideoDidAgainRewardSuccess ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
break;
// ad video again clicked(only TT)
case RewardedStatus.rewardedVideoDidAgainClick:
print("flutter rewardedVideoDidAgainClick ---- placementID: ${value.placementID} ---- extra:${value.extraMap}");
case RewardedStatus.rewardedVideoUnknown:
print("flutter rewardedVideoUnknown");
break;
}
});
}