#android #flutter #dart #admob #googlemobileads
Вопрос:
Я разрабатываю функцию рекламы вознаграждений в своем приложении. Я использую google_mobile_ads: ^0.13.5
пакет для показа рекламы. Моя награда показывается пользователю, даже если пользователь пропустит видеорекламу. Я хочу запретить пользователю получать вознаграждение, если он пропустит объявление.
Это мой фрагмент кода :
class AdsBloc extends ChangeNotifier{
int _rewardedPoint = 0 ;
int _preReward = -1;
int getrewardpoint() => _rewardedPoint;
int getpreRewardpoint() => _preReward;
RewardedAd _rewardedAd;
int _numRewardedLoadAttempts = 0;
static initialization(){
if(MobileAds.instance == null)
{
MobileAds.instance.initialize();
}
}
void createRewardedAd() {
RewardedAd.load(
adUnitId: Config().admobRewardAdId,
request: AdRequest(),
rewardedAdLoadCallback: RewardedAdLoadCallback(
onAdLoaded: (RewardedAd ad) {
print('$ad loaded.');
_rewardedAd = ad;
_numRewardedLoadAttempts = 0;
},
onAdFailedToLoad: (LoadAdError error) {
print('RewardedAd failed to load: $error');
_rewardedAd = null;
_numRewardedLoadAttempts = 1;
if (_numRewardedLoadAttempts <= 2) {
createRewardedAd();
}
},
));
}
void showRewardedAd(Future<dynamic> onEnd) {
if (_rewardedAd == null) {
print('Warning: attempt to show rewarded before loaded.');
return;
}
_rewardedAd.fullScreenContentCallback = FullScreenContentCallback(
onAdShowedFullScreenContent: (RewardedAd ad) =>
print('ad onAdShowedFullScreenContent.'),
onAdDismissedFullScreenContent: (RewardedAd ad) {
print('$ad onAdDismissedFullScreenContent.User dismissed');
ad.dispose();
createRewardedAd();
},
onAdWillDismissFullScreenContent: (ad) {
print("pleasee dont");
},
onAdFailedToShowFullScreenContent: (RewardedAd ad, AdError error) {
print('$ad onAdFailedToShowFullScreenContent: $error');
ad.dispose();
createRewardedAd();
},
onAdImpression: (RewardedAd ad) => print('$ad impression occurred.'),
);
_rewardedAd.setImmersiveMode(true);
_rewardedAd.show(onUserEarnedReward: (RewardedAd ad, RewardItem reward) {
_preReward = _rewardedPoint;
_rewardedPoint = reward.amount;
if(_preReward < _rewardedPoint){
print("ad watched give them rewaard");
// reward funcction
}else{
print("Please watch ad");
}
print('$ad with reward $RewardItem(${reward.amount}, ${reward.type}');
});
_rewardedAd = null;
}
}
Выше приведен мой код. Я точно не знаю, где я допустил ошибку. Я хочу определить, смотрит ли пользователь рекламу или нет. Я хочу вознаградить их только в том случае, если они посмотрели рекламу. Как это сделать. Я в замешательстве.
Комментарии:
1. Какой пакет видеоплеера вы используете для воспроизведения видео ?
2. Я не использовал никакой пакет видеоплеера. Это видеореклама.