Мое объявление с вознаграждением не загружается в моем приложении Flutter (Android). Я также обновил файл AndroidManifest.xml, добавив метатеги и разрешения в Интернет. Я попробовал testUnitId, а также реальный unitId из admob на эмуляторе и реальном устройстве.
// инициализация MobileAds.instance.initialize();
// testUnitId = "ca-app -pub-3940256099942544/5224354917";
// рекламный блок
class AdBloc extends Bloc {
RewardedAd? rewardedAd;
AdBloc() : super(AdInitialState()) {
on(_loadAd);
on(_showAd);
}
FutureOr _loadAd(LoadAdEvent event, Emitter emit) async {
try {
emit(AdLoadingState());
await RewardedAd.load(
adUnitId: AppConstants.testAdUnit,
request: AdRequest(),
rewardedAdLoadCallback: RewardedAdLoadCallback(
onAdLoaded: (RewardedAd ad) {
rewardedAd = ad;
emit(AdLoaddedState());
print('=====================ad loaded =================');
add(ShowAdEvent());
//emit(AdInitialState());
},
onAdFailedToLoad: (LoadAdError error) {
print('=====================ad loaded =================');
// emit(
// AdFailureState(error: 'Failed to load ad: ${error.toString()}'),
// );
},
),
);
} catch (error) {
emit(AdFailureState(error: 'Failed to load ad: ${error.toString()}'));
}
}
FutureOr _showAd(ShowAdEvent event, Emitter emit) async {
if (rewardedAd != null) {
emit(AdPlayingState());
await rewardedAd!.show(
onUserEarnedReward: (AdWithoutView ad, RewardItem reward) {
emit(AdCompletedState(
msg: 'You got ${AppConstants.rewardedTokens} tokens'));
services().call();
rewardedAd?.dispose();
},
);
} else {
emit(AdFailureState(error: "No ad loaded"));
}
}
@override
Future close() {
rewardedAd?.dispose();
return super.close();
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... in-flutter