@@ -30,12 +30,12 @@ class AdMobAdProvider implements AdProvider {
3030
3131 @override
3232 Future <void > initialize () async {
33- _logger.info ('Initializing Google Mobile Ads SDK...' );
33+ _logger.info ('AdMobAdProvider: Initializing Google Mobile Ads SDK...' );
3434 try {
3535 await admob.MobileAds .instance.initialize ();
36- _logger.info ('Google Mobile Ads SDK initialized successfully.' );
36+ _logger.info ('AdMobAdProvider: Google Mobile Ads SDK initialized successfully.' );
3737 } catch (e) {
38- _logger.severe ('Failed to initialize Google Mobile Ads SDK: $e ' );
38+ _logger.severe ('AdMobAdProvider: Failed to initialize Google Mobile Ads SDK: $e ' );
3939 // Depending on requirements, you might want to rethrow or handle this more gracefully.
4040 // For now, we log and continue, as ad loading might still work in some cases.
4141 }
@@ -48,12 +48,13 @@ class AdMobAdProvider implements AdProvider {
4848 required AdThemeStyle adThemeStyle,
4949 HeadlineImageStyle ? headlineImageStyle,
5050 }) async {
51+ _logger.info ('AdMobAdProvider: loadNativeAd called for adId: $adId ' );
5152 if (adId == null || adId.isEmpty) {
52- _logger.warning ('No native ad unit ID provided for AdMob.' );
53+ _logger.warning ('AdMobAdProvider: No native ad unit ID provided for AdMob.' );
5354 return null ;
5455 }
5556
56- _logger.info ('Attempting to load native ad from unit ID: $adId ' );
57+ _logger.info ('AdMobAdProvider: Attempting to load native ad from unit ID: $adId ' );
5758
5859 // Determine the template type based on the user's feed style preference.
5960 final templateType = headlineImageStyle == HeadlineImageStyle .largeThumbnail
@@ -74,51 +75,53 @@ class AdMobAdProvider implements AdProvider {
7475 ),
7576 listener: admob.NativeAdListener (
7677 onAdLoaded: (ad) {
77- _logger.info ('Native Ad loaded successfully.' );
78+ _logger.info ('AdMobAdProvider: Native Ad loaded successfully.' );
7879 completer.complete (ad as admob.NativeAd );
7980 },
8081 onAdFailedToLoad: (ad, error) {
81- _logger.severe ('Native Ad failed to load: $error ' );
82+ _logger.severe ('AdMobAdProvider: Native Ad failed to load: $error ' );
8283 completer.complete (null );
8384 },
8485 onAdClicked: (ad) {
85- _logger.info ('Native Ad clicked.' );
86+ _logger.info ('AdMobAdProvider: Native Ad clicked.' );
8687 },
8788 onAdImpression: (ad) {
88- _logger.info ('Native Ad impression recorded.' );
89+ _logger.info ('AdMobAdProvider: Native Ad impression recorded.' );
8990 },
9091 onAdClosed: (ad) {
91- _logger.info ('Native Ad closed.' );
92+ _logger.info ('AdMobAdProvider: Native Ad closed.' );
9293 },
9394 onAdOpened: (ad) {
94- _logger.info ('Native Ad opened.' );
95+ _logger.info ('AdMobAdProvider: Native Ad opened.' );
9596 },
9697 onAdWillDismissScreen: (ad) {
97- _logger.info ('Native Ad will dismiss screen.' );
98+ _logger.info ('AdMobAdProvider: Native Ad will dismiss screen.' );
9899 },
99100 ),
100101 );
101102
102103 try {
103104 await ad.load ();
104105 } catch (e) {
105- _logger.severe ('Error during native ad load: $e ' );
106+ _logger.severe ('AdMobAdProvider: Error during native ad load: $e ' );
106107 completer.complete (null );
107108 }
108109
109110 final googleNativeAd = await completer.future.timeout (
110111 const Duration (seconds: _adLoadTimeout),
111112 onTimeout: () {
112- _logger.warning ('Native ad loading timed out.' );
113+ _logger.warning ('AdMobAdProvider: Native ad loading timed out.' );
113114 ad.dispose ();
114115 return null ;
115116 },
116117 );
117118
118119 if (googleNativeAd == null ) {
120+ _logger.warning ('AdMobAdProvider: Google Native Ad object is null after load attempt.' );
119121 return null ;
120122 }
121123
124+ _logger.info ('AdMobAdProvider: Returning loaded NativeAd.' );
122125 return NativeAd (
123126 id: _uuid.v4 (),
124127 provider: AdPlatformType .admob,
@@ -134,12 +137,13 @@ class AdMobAdProvider implements AdProvider {
134137 required AdThemeStyle adThemeStyle,
135138 HeadlineImageStyle ? headlineImageStyle,
136139 }) async {
140+ _logger.info ('AdMobAdProvider: loadBannerAd called for adId: $adId ' );
137141 if (adId == null || adId.isEmpty) {
138- _logger.warning ('No banner ad unit ID provided for AdMob.' );
142+ _logger.warning ('AdMobAdProvider: No banner ad unit ID provided for AdMob.' );
139143 return null ;
140144 }
141145
142- _logger.info ('Attempting to load banner ad from unit ID: $adId ' );
146+ _logger.info ('AdMobAdProvider: Attempting to load banner ad from unit ID: $adId ' );
143147
144148 // Determine the ad size based on the user's feed style preference.
145149 final adSize = headlineImageStyle == HeadlineImageStyle .largeThumbnail
@@ -154,47 +158,49 @@ class AdMobAdProvider implements AdProvider {
154158 request: const admob.AdRequest (),
155159 listener: admob.BannerAdListener (
156160 onAdLoaded: (ad) {
157- _logger.info ('Banner Ad loaded successfully.' );
161+ _logger.info ('AdMobAdProvider: Banner Ad loaded successfully.' );
158162 completer.complete (ad as admob.BannerAd );
159163 },
160164 onAdFailedToLoad: (ad, error) {
161- _logger.severe ('Banner Ad failed to load: $error ' );
165+ _logger.severe ('AdMobAdProvider: Banner Ad failed to load: $error ' );
162166 ad.dispose ();
163167 completer.complete (null );
164168 },
165169 onAdOpened: (ad) {
166- _logger.info ('Banner Ad opened.' );
170+ _logger.info ('AdMobAdProvider: Banner Ad opened.' );
167171 },
168172 onAdClosed: (ad) {
169- _logger.info ('Banner Ad closed.' );
173+ _logger.info ('AdMobAdProvider: Banner Ad closed.' );
170174 },
171175 onAdImpression: (ad) {
172- _logger.info ('Banner Ad impression recorded.' );
176+ _logger.info ('AdMobAdProvider: Banner Ad impression recorded.' );
173177 },
174178 ),
175179 );
176180
177181 try {
178182 await ad.load ();
179183 } catch (e) {
180- _logger.severe ('Error during banner ad load: $e ' );
184+ _logger.severe ('AdMobAdProvider: Error during banner ad load: $e ' );
181185 completer.complete (null );
182186 }
183187
184188 final googleBannerAd = await completer.future.timeout (
185189 const Duration (seconds: _adLoadTimeout),
186190 onTimeout: () {
187- _logger.warning ('Banner ad loading timed out.' );
191+ _logger.warning ('AdMobAdProvider: Banner ad loading timed out.' );
188192 ad.dispose ();
189193 return null ;
190194 },
191195 );
192196
193197 if (googleBannerAd == null ) {
198+ _logger.warning ('AdMobAdProvider: Google Banner Ad object is null after load attempt.' );
194199 return null ;
195200 }
196201
197202 // Wrap the loaded AdMob BannerAd in our generic BannerAd model.
203+ _logger.info ('AdMobAdProvider: Returning loaded BannerAd.' );
198204 return BannerAd (
199205 id: _uuid.v4 (),
200206 provider: AdPlatformType .admob,
@@ -208,12 +214,13 @@ class AdMobAdProvider implements AdProvider {
208214 required String ? adId,
209215 required AdThemeStyle adThemeStyle,
210216 }) async {
217+ _logger.info ('AdMobAdProvider: loadInterstitialAd called for adId: $adId ' );
211218 if (adId == null || adId.isEmpty) {
212- _logger.warning ('No interstitial ad unit ID provided for AdMob.' );
219+ _logger.warning ('AdMobAdProvider: No interstitial ad unit ID provided for AdMob.' );
213220 return null ;
214221 }
215222
216- _logger.info ('Attempting to load interstitial ad from unit ID: $adId ' );
223+ _logger.info ('AdMobAdProvider: Attempting to load interstitial ad from unit ID: $adId ' );
217224
218225 final completer = Completer <admob.InterstitialAd ?>();
219226
@@ -222,11 +229,11 @@ class AdMobAdProvider implements AdProvider {
222229 request: const admob.AdRequest (),
223230 adLoadCallback: admob.InterstitialAdLoadCallback (
224231 onAdLoaded: (ad) {
225- _logger.info ('Interstitial Ad loaded successfully.' );
232+ _logger.info ('AdMobAdProvider: Interstitial Ad loaded successfully.' );
226233 completer.complete (ad);
227234 },
228235 onAdFailedToLoad: (error) {
229- _logger.severe ('Interstitial Ad failed to load: $error ' );
236+ _logger.severe ('AdMobAdProvider: Interstitial Ad failed to load: $error ' );
230237 completer.complete (null );
231238 },
232239 ),
@@ -235,19 +242,21 @@ class AdMobAdProvider implements AdProvider {
235242 final googleInterstitialAd = await completer.future.timeout (
236243 const Duration (seconds: _adLoadTimeout),
237244 onTimeout: () {
238- _logger.warning ('Interstitial ad loading timed out.' );
245+ _logger.warning ('AdMobAdProvider: Interstitial ad loading timed out.' );
239246 return null ;
240247 },
241248 );
242249
243250 if (googleInterstitialAd == null ) {
251+ _logger.warning ('AdMobAdProvider: Google Interstitial Ad object is null after load attempt.' );
244252 return null ;
245253 }
246254
247255 // Interstitial ads are typically shown immediately or on demand,
248256 // not rendered as a widget in a feed. We wrap it as a InterstitialAd
249257 // for consistency in the AdService return type, but its `adObject`
250258 // will be an `InterstitialAd` which can be shown.
259+ _logger.info ('AdMobAdProvider: Returning loaded InterstitialAd.' );
251260 return InterstitialAd (
252261 id: _uuid.v4 (),
253262 provider: AdPlatformType .admob,
0 commit comments