google_applovin_unity_ads 2.3.7 copy "google_applovin_unity_ads: ^2.3.7" to clipboard
google_applovin_unity_ads: ^2.3.7 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);
  Widget _nativeAd2 = Container(height: 0);
  Widget _nativeAd3 = Container(height: 0);
  Widget _nativeAd4 = Container(height: 0);
  Widget _nativeAd5 = Container(height: 0);
  Widget _nativeAd6 = Container(height: 0);
  Widget _nativeAd7 = Container(height: 0);
  Widget _nativeAd8 = Container(height: 0);
  Widget _nativeAd9 = Container(height: 0);
  Widget _nativeAd10 = Container(height: 0);
  Widget _nativeAd11 = Container(height: 0);
  Widget _nativeAd12 = Container(height: 0);
  Widget _bannerAd = 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/new_ads.json",
                      keyName: "com.expert.iptv.italy")
                  .then((value) => {
                        if ((getAdsSettings()?.appLovin?.sdkKey ?? "")
                            .isNotEmpty)
                          {
                            AppLovinAds.instance
                                .initialize(
                                  getAdsSettings()?.appLovin?.sdkKey ?? "",
                                  getAdsSettings()
                                              ?.adSetting
                                              ?.isGeoedgeSdkFlag ==
                                          true
                                      ? (getAdsSettings()
                                              ?.adSetting
                                              ?.geoedgeSdkKey ??
                                          "")
                                      : "",
                                  getAdsSettings()
                                              ?.adSetting
                                              ?.isGeoedgeSdkFlag ==
                                          true
                                      ? (getAdsSettings()
                                              ?.adSetting
                                              ?.geoedgeSdkKeyTimeoutInSeconds ??
                                          0)
                                      : 0,
                                )
                                .then((value) => {
                                      /*showNativeAds(
                                        onAdLoadedCallback: (p0) {
                                          setState(() {
                                            _nativeAd = p0;
                                          });
                                        },
                                      )*/
                                    })
                          },
                        showNativeAds(
                          size: const Size(double.infinity, 200),
                          onAdLoadedCallback: (p0) {
                            setState(() {
                              _nativeAd = p0;
                            });
                          },
                        ),
                        // await incrementNativeSequence(),
                       /* showNativeAds(
                          size: const Size(double.infinity, 200),
                          onAdLoadedCallback: (p1) {
                            setState(() {
                              _nativeAd2 = p1;
                            });
                          },
                        ),*/
                        showBannerAds(
                          onAdLoadedCallback: (p0) {
                            setState(() {
                              _bannerAd = p0;
                            });
                          },
                        )
                      })
            });
  }

  @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: SingleChildScrollView(
              child: Column(children: [
                _nativeAd,
                SizedBox(height: 20),
                Text(placeholderText),
                SizedBox(height: 20),
                _nativeAd2,
                SizedBox(height: 20),
                TextButton(
                  style: ButtonStyle(
                    overlayColor: MaterialStateProperty.resolveWith<Color?>(
                        (Set<MaterialState> states) {
                      if (states.contains(MaterialState.focused))
                        return Colors.red;
                      return null; // Defer to the widget's default.
                    }),
                  ),
                  onPressed: () {
                    showIntraAds(callback: () {});
                  },
                  child: const Text('INTRA ADS'),
                ),
                SizedBox(height: 20),
                TextButton(
                  style: ButtonStyle(
                    overlayColor: MaterialStateProperty.resolveWith<Color?>(
                        (Set<MaterialState> states) {
                      if (states.contains(MaterialState.focused))
                        return Colors.red;
                      return null; // Defer to the widget's default.
                    }),
                  ),
                  onPressed: () {
                    showRewardAds(callback: () {});
                  },
                  child: const Text('REWARD ADS'),
                ),
                SizedBox(height: 20),
                TextButton(
                  style: ButtonStyle(
                    overlayColor: MaterialStateProperty.resolveWith<Color?>(
                        (Set<MaterialState> states) {
                      if (states.contains(MaterialState.focused))
                        return Colors.red;
                      return null; // Defer to the widget's default.
                    }),
                  ),
                  onPressed: () {
                    showNativeAds(
                      size: const Size(double.infinity, 200),
                      onAdLoadedCallback: (p0) {
                        setState(() {
                          _nativeAd3 = p0;
                        });
                      },
                    );
                  },
                  child: const Text('NATIVE ADS'),
                ),
                SizedBox(height: 20),
                _nativeAd3,
                SizedBox(height: 20),
                TextButton(
                  style: ButtonStyle(
                    overlayColor: MaterialStateProperty.resolveWith<Color?>(
                        (Set<MaterialState> states) {
                      if (states.contains(MaterialState.focused))
                        return Colors.red;
                      return null; // Defer to the widget's default.
                    }),
                  ),
                  onPressed: () {
                    showNativeAds(
                      size: const Size(double.infinity, 200),
                      onAdLoadedCallback: (p0) {
                        setState(() {
                          _nativeAd4 = p0;
                        });
                      },
                    );
                  },
                  child: const Text('NATIVE ADS'),
                ),
                SizedBox(height: 20),
                _nativeAd4,
                SizedBox(height: 20),
                TextButton(
                  style: ButtonStyle(
                    overlayColor: MaterialStateProperty.resolveWith<Color?>(
                        (Set<MaterialState> states) {
                      if (states.contains(MaterialState.focused))
                        return Colors.red;
                      return null; // Defer to the widget's default.
                    }),
                  ),
                  onPressed: () {
                    showNativeAds(
                      size: const Size(double.infinity, 200),
                      onAdLoadedCallback: (p0) {
                        setState(() {
                          _nativeAd5 = p0;
                        });
                      },
                    );
                  },
                  child: const Text('NATIVE ADS'),
                ),
                SizedBox(height: 20),
                _nativeAd5,
                TextButton(
                  style: ButtonStyle(
                    overlayColor: MaterialStateProperty.resolveWith<Color?>(
                        (Set<MaterialState> states) {
                      if (states.contains(MaterialState.focused))
                        return Colors.red;
                      return null; // Defer to the widget's default.
                    }),
                  ),
                  onPressed: () {
                    showNativeAds(
                      size: const Size(double.infinity, 200),
                      onAdLoadedCallback: (p0) {
                        setState(() {
                          _nativeAd6 = p0;
                        });
                      },
                    );
                  },
                  child: const Text('NATIVE ADS'),
                ),
                SizedBox(height: 20),
                _nativeAd6,
                TextButton(
                  style: ButtonStyle(
                    overlayColor: MaterialStateProperty.resolveWith<Color?>(
                        (Set<MaterialState> states) {
                      if (states.contains(MaterialState.focused))
                        return Colors.red;
                      return null; // Defer to the widget's default.
                    }),
                  ),
                  onPressed: () {
                    showNativeAds(
                      size: const Size(double.infinity, 200),
                      onAdLoadedCallback: (p0) {
                        setState(() {
                          _nativeAd7 = p0;
                        });
                      },
                    );
                  },
                  child: const Text('NATIVE ADS'),
                ),
                SizedBox(height: 20),
                _nativeAd7,
                TextButton(
                  style: ButtonStyle(
                    overlayColor: MaterialStateProperty.resolveWith<Color?>(
                        (Set<MaterialState> states) {
                      if (states.contains(MaterialState.focused))
                        return Colors.red;
                      return null; // Defer to the widget's default.
                    }),
                  ),
                  onPressed: () {
                    showNativeAds(
                      size: const Size(double.infinity, 200),
                      onAdLoadedCallback: (p0) {
                        setState(() {
                          _nativeAd8 = p0;
                        });
                      },
                    );
                  },
                  child: const Text('NATIVE ADS'),
                ),
                SizedBox(height: 20),
                _nativeAd8,
                TextButton(
                  style: ButtonStyle(
                    overlayColor: MaterialStateProperty.resolveWith<Color?>(
                        (Set<MaterialState> states) {
                      if (states.contains(MaterialState.focused))
                        return Colors.red;
                      return null; // Defer to the widget's default.
                    }),
                  ),
                  onPressed: () {
                    showNativeAds(
                      size: const Size(double.infinity, 200),
                      onAdLoadedCallback: (p0) {
                        setState(() {
                          _nativeAd9 = p0;
                        });
                      },
                    );
                  },
                  child: const Text('NATIVE ADS'),
                ),
                SizedBox(height: 20),
                _nativeAd9,
                TextButton(
                  style: ButtonStyle(
                    overlayColor: MaterialStateProperty.resolveWith<Color?>(
                        (Set<MaterialState> states) {
                      if (states.contains(MaterialState.focused))
                        return Colors.red;
                      return null; // Defer to the widget's default.
                    }),
                  ),
                  onPressed: () {
                    showNativeAds(
                      size: const Size(double.infinity, 200),
                      onAdLoadedCallback: (p0) {
                        setState(() {
                          _nativeAd10 = p0;
                        });
                      },
                    );
                  },
                  child: const Text('NATIVE ADS'),
                ),
                SizedBox(height: 20),
                _nativeAd10,
                SizedBox(height: 20),
                TextButton(
                  style: ButtonStyle(
                    overlayColor: MaterialStateProperty.resolveWith<Color?>(
                        (Set<MaterialState> states) {
                      if (states.contains(MaterialState.focused))
                        return Colors.red;
                      return null; // Defer to the widget's default.
                    }),
                  ),
                  onPressed: () {
                    showNativeAds(
                      size: const Size(double.infinity, 200),
                      onAdLoadedCallback: (p0) {
                        setState(() {
                          _nativeAd11 = p0;
                        });
                      },
                    );
                  },
                  child: const Text('NATIVE ADS'),
                ),
                SizedBox(height: 20),
                _nativeAd11,
                SizedBox(height: 20),
                TextButton(
                  style: ButtonStyle(
                    overlayColor: MaterialStateProperty.resolveWith<Color?>(
                        (Set<MaterialState> states) {
                      if (states.contains(MaterialState.focused))
                        return Colors.red;
                      return null; // Defer to the widget's default.
                    }),
                  ),
                  onPressed: () {
                    showNativeAds(
                      size: const Size(double.infinity, 200),
                      onAdLoadedCallback: (p0) {
                        setState(() {
                          _nativeAd12 = p0;
                        });
                      },
                    );
                  },
                  child: const Text('NATIVE ADS'),
                ),
                SizedBox(height: 20),
                _nativeAd12,
                SizedBox(height: 20),
              ]),
            ),
          ),
          bottomNavigationBar: _bannerAd,
        );
      }),
    );
  }
}