google_applovin_unity_ads 2.2.9 copy "google_applovin_unity_ads: ^2.2.9" to clipboard
google_applovin_unity_ads: ^2.2.9 copied to clipboard

Ads Implement

example/lib/main.dart

// Copyright 2022 Bitcoding

import 'package:flutter/material.dart';
import 'package:get/route_manager.dart';
import 'package:google_applovin_unity_ads/google_applovin_unity_ads.dart';
import 'package:google_applovin_unity_ads_example/main_screen.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();
  FacebookAds.instance.initialize();
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final String placeholderText =
      'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod'
      'tempor incididunt ut labore et dolore magna aliqua. Faucibus purus in'
      'massa tempor. Quis enim lobortis scelerisque fermentum dui faucibus'
      'in. Nibh praesent tristique magna sit amet purus gravida quis.'
      'Magna sit amet purus gravida quis blandit turpis cursus in. Sed'
      'adipiscing diam donec adipiscing tristique. Urna porttitor rhoncus'
      'dolor purus non enim praesent. Pellentesque habitant morbi tristique'
      'senectus et netus. Risus ultricies tristique nulla aliquet enim tortor'
      'at.';

  Widget _nativeAd = Container(height: 0);

  @override
  void initState() {
    super.initState();
    Future.delayed(
        const Duration(seconds: 1),
        () => {
              fetchAdsSettings(
                      appVersionCode: 1,
                      settingsUrl:
                          "https://gitlab.com/prbitcoding/ads_setting/-/raw/main/ads.json",
                      keyName: "com.bitlinks.pakistan.iptv.m3ulist")
                  .then((value) => {
                        if ((getAdsSettings()?.appLovin?.sdkKey ?? "")
                            .isNotEmpty)
                          {
                            AppLovinAds.instance
                                .initialize(
                                  getAdsSettings()?.appLovin?.sdkKey ?? "",
                                  getAdsSettings()
                                              ?.adSetting
                                              ?.isGeoedgeSdkFlag ==
                                          true
                                      ? (getAdsSettings()
                                              ?.adSetting
                                              ?.geoedgeSdkKey ??
                                          "")
                                      : "",
                                )
                          },
                      })
            });
  }

  @override
  void dispose() {
    super.dispose();
    destroyAd();
  }

  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      home: Builder(builder: (BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: const Text('Ads example app'),
            actions: <Widget>[
              PopupMenuButton<String>(
                onSelected: (String result) {
                  switch (result) {
                    case 'InterstitialAd':
                      showIntraAds(
                          callback: () => {print("Show Completed true")});
                      break;
                    case 'RewardedAd':
                      showRewardAds(
                          callback: () => {print("Show Completed true")},
                          onSkippedCallback: () => {print("Skipped Ad true")},
                          onFailedCallback: () => {
                                showIntraAds(
                                    isCompulsory: true,
                                    callback: () => {
                                          print(
                                              "Show Completed onFailedCallback")
                                        })
                              });
                      break;
                    case 'MainScreen':
                      Navigator.push(context, MaterialPageRoute(
                        builder: (context) {
                          return const MainScreen();
                        },
                      ));
                      break;
                    default:
                      throw AssertionError('unexpected button: $result');
                  }
                },
                itemBuilder: (BuildContext context) => <PopupMenuEntry<String>>[
                  const PopupMenuItem<String>(
                    value: 'InterstitialAd',
                    child: Text('InterstitialAd'),
                  ),
                  const PopupMenuItem<String>(
                    value: 'RewardedAd',
                    child: Text('RewardedAd'),
                  ),
                  const PopupMenuItem<String>(
                    value: 'MainScreen',
                    child: Text('MainScreen'),
                  )
                ],
              ),
            ],
          ),
          body: SafeArea(
            child: Text(placeholderText),
          ),
          bottomNavigationBar: _nativeAd,
        );
      }),
    );
  }
}