I recently integrated google_mobile_ads plugin for Flutter after firebase_admob plugin got deprecated. Ever since then my Rewarded Ads stopped working. These are the errors I get:
(13077): This request is sent from a test device. E/chromium(13077): [ERROR:cookie_manager.cc(137)] Strict Secure Cookie policy does not allow setting a secure cookie for http://googleads.g.doubleclick.net/ for apps targeting >= R. Please either use the 'https:' scheme for this URL or omit the 'Secure' directive in the cookie value. W/Ads (13077): #004 The webview is destroyed. Ignoring action.
My code is as below:
void main() {
WidgetsFlutterBinding.ensureInitialized();
MobileAds.instance.initialize();
InAppPurchaseConnection.enablePendingPurchases();
runApp(MyApp());
}
class _RewardedVideoState extends State<RewardedVideo> {
bool _rewardedReady = false;
RewardedAd _rewardedAd;
static final AdRequest _adRequest = AdRequest(
keywords: <String>['Puzzles', 'Games', 'Word Games'],
nonPersonalizedAds: true,
);
@override
void didChangeDependencies() {
createRewardedAd();
super.didChangeDependencies();
}
void createRewardedAd([Score userScore]) {
print('Inside createRewardedAd');
// RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("CFA70A4A1BD59DA3323D586CA8BD2541"))
_rewardedAd = RewardedAd(
adUnitId: RewardedAd.testAdUnitId,
request: _adRequest,
listener: AdListener(
onAdLoaded: (Ad ad) {
print('${ad.runtimeType} loaded. RADHA ');
_rewardedReady = true;
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('${ad.runtimeType} failed to load: $error');
ad.dispose();
_rewardedAd = null;
createRewardedAd(userScore);
},
onAdOpened: (Ad ad) => print('${ad.runtimeType} onAdOpened.'),
onAdClosed: (Ad ad) {
print('${ad.runtimeType} closed.');
ad.dispose();
createRewardedAd(userScore);
},
onApplicationExit: (Ad ad) =>
print('${ad.runtimeType} onApplicationExit.'),
onRewardedAdUserEarnedReward: (RewardedAd ad, RewardItem reward) {
userScore.updateHintsEarned(reward.amount);
}),
)..load();
print('Completed RewardedAd Load ' + _rewardedAd.toString());
}
@override
void dispose() {
_rewardedAd.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
final Score userScore = Provider.of<Score>(context, listen: false);
print('Inside RewardedVideo widget *** ........');
try {
if (_rewardedReady) {
print('Showing rewardedAd ***');
_rewardedAd.show();
_rewardedReady = false;
_rewardedAd = null;
} else
createRewardedAd(userScore);
} catch (e) {
print("error in showing ad: " + e.toString());
}
return SizedBox(
height: 0,
);
}
}
I am able to get banner ads (not included in this code) but rewarded ad does not load at all. Any idea what might be going wrong here?