Flutter Native Ads Error No NativeAdFactory

21 Views Asked by At

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.

0

There are 0 best solutions below