adservices.dart
import 'package:flutter/material.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
class AdService {
final NativeAdFactory nativeAdFactory;
AdService({required this.nativeAdFactory});
Future<NativeAd> createNativeAd() async {
print("AdService - NativeAdFactory ID: ${nativeAdFactory.factoryId}");
final NativeAd nativeAd = NativeAd(
adUnitId: 'ca-app-pub-3940256099942544/2247696110',
factoryId: nativeAdFactory.factoryId,
listener: NativeAdListener(
onAdLoaded: (Ad ad) => print('Reklam yüklendi.'),
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('Reklam yüklenirken hata oluştu: $error');
ad.dispose();
},
),
request: AdRequest(),
);
await nativeAd.load();
return nativeAd;
}
}
class NativeAdFactory {
NativeAdFactory({required this.factoryId});
final String factoryId;
Widget createNativeAd(BuildContext context, Ad ad) {
return Container(
height: 100,
width: 300,
color: Colors.white,
child: Text('Native Ad Placeholder'),
);
}
}
home.dart class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
late DocumentReference _postsDocument; // Değişkeni burada tanımlayın
late List<Map<String, dynamic>> _posts;
final GlobalKey<RefreshIndicatorState> _refreshIndicatorKey =
GlobalKey<RefreshIndicatorState>();
final adService =
AdService(nativeAdFactory: NativeAdFactory(factoryId: 'nativeAdFactory.factoryId'));
@override
void initState() {
super.initState();
_posts = [];
_loadPosts();
print("NewPostsList - AdService - NativeAdFactory ID: ${adService.nativeAdFactory.factoryId}");
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
RemoteNotification? notification = message.notification;
AndroidNotification? android = message.notification?.android;
if (notification != null && android != null) {
main.dart Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
await Firebase.initializeApp();
print('Handling a background message ${message.messageId}');
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
// Arka plan bildirim handler'ını kaydedin
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
MobileAds.instance.initialize();
// Bildirim izinlerini isteyin ve FCM token'ını alıp kaydedin
requestPermission();
runApp(const MyApp());
}
For testing, I printed it in the terminal.
Here in home.dart there is [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(NativeAdError, No NativeAdFactory with id: nativeAdFactory.factoryId or nativeTemplateStyle, null, null) error. There are also I/flutter (11438): AdService - NativeAdFactory ID: nativeAdFactory.factoryId and I/flutter (11438): NewPostsList - AdService - NativeAdFactory ID: nativeAdFactory.factoryId outputs in the terminal.