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

Ads Implement

ADD IN PUBSPEC.YMAL #

dependencies:
google_applovin_unity_ads:
get:
flutter_screenutil:

ADD IN ANDROID MANIFEST #


//PERMISSION 
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

<applicaton
<meta-data
android:name="com.google.android.gms.ads.AD_MANAGER_APP"
android:value="true" />

//FOR ANDROID SPLASH SCREEN
<meta-data
android:name="io.flutter.embedding.android.SplashScreenDrawable"
android:resource="@drawable/launch_background" />
</application>

ADD IN BUILD GRADEL #

    multiDexEnabled true
targetSdkVersion 33

ADD IN VOID MAIN #

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

INITIALISE ADS FIRST TIME #


@override
void initState() {
  // TODO: implement initState
  super.initState();
  fetchAdsSettings(
      appVersionCode: 1,
      settingsUrl:
      "https://gitlab.com/pp.bitcoding/demotest/-/raw/main/test.json",
      keyName: "com.bitlinks.arebic.iptv.m3ulist")
      .then((value) =>
  {
    initOpenAds(onOpenAdLoaded: () => {showOpenAds()}),
    if(value?.adsSequence?.contains("app_lovin") ?? false)
      {
        if ((getAdsSettings()?.appLovin?.sdkKey ?? "").isNotEmpty)
          {
            AppLovinAds.instance
                .initialize(value!.appLovin!.sdkKey!)
                .then((value) =>
            {
              YOUR PAGE ROUTE
            })
          }
        else
          {
            YOUR PAGE ROUTE
          }
      }
    else
      {
        YOUR PAGE ROUTE
      }
  });
}

FOR OPEN AD #

    initOpenAds(onOpenAdLoaded: () => {showOpenAds()}),

FOR INTRA AD #

    showIntraAds(callback: () => {});

FOR REWARD AD #

    showRewardAds(callback: () => {});

FOR BANNER AD #


  Widget bannerShow = Container(height: 0);
  var adSizeBanner = AdSize.largeBanner;         -> medium height.
  var adSizeBanner = AdSize.mediumRectangle;     -> full height.
  var adSizeBanner = AdSize.banner;              -> small height.
  
  
  <--------load native ad -------->
  
    showBannerAds(
      size: adSiiize,
      onAdLoadedCallback: (p0) {
        setState(() {
          bannerShow = p0;
        });
      },
    );
    
    
 <--------show native ad -------->
      bannerShow,
 

NATIVE ADS #

ADD IN MAINACTIVITY.KT

import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import com.btcpiyush.ads.google_applovin_unity_ads.CustomNativeAd
import com.btcpiyush.ads.google_applovin_unity_ads.GoogleApplovinUnityAdsPlugin

class MainActivity: FlutterActivity() {
    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
        super.configureFlutterEngine(flutterEngine)
        val factory: CustomNativeAd =
            CustomNativeAd(
                getLayoutInflater()
            )
        GoogleApplovinUnityAdsPlugin.registerNativeAdFactory(flutterEngine, "nativeFactoryId", factory)
    }

    override fun cleanUpFlutterEngine(flutterEngine: FlutterEngine) {
        GoogleApplovinUnityAdsPlugin.unregisterNativeAdFactory(flutterEngine, "nativeFactoryId")
    }
}

SMALL NATIVE #

 Widget smallNativeShow = Container(
    height: 0,
  );
  
  <--------load native ad -------->
  
  showMediumNativeAds(
        onAdLoadedCallback: (a) => {
              setState(() {
                smallNativeShow = a;
              })
            });
  
  <--------show native ad -------->
  smallNativeShow,
  

BIG NATIVE #


  Widget BigNativeShow = Container(
    height: 0,
  );

  <--------load native ad -------->
   showNativeAds(
        onAdLoadedCallback: (a) => {
              setState(() {
                BigNativeShow = a;
              })
            });
            
            
  <--------show native ad -------->            
            BigNativeShow,

LISTVIEW BUILDER ADS (banner ads / native ads) #

showAdsInListView(
            isNativeAds: true,                          if true -> native ads else banner ads show.
            nativeAdSize: Size(width: double,infinity, 180.h),
            bannerSize: AdSize.mediumRectangle,
            list: AdsController.instance.widgetlist,
            adsDistance: 3,
            itemBuilder: (context, index) {
              return Text("Pragnesh ${index}");
            },
            controller: AdsController.instance)

GRIDVIEW BUILDER ADS (banner ads / native ads) #

showAdsInGridView(
                crossAxisCount: 4,
                mainAxisSpacing: 4.0,
                nativeAdSize: Size(width: double,infinity, 180.h),
                crossAxisSpacing: 4.0,
                controller: MyController.instance,
                adsDistance: nativeAdDistance,
                itemBuilder: (context, index) {
                if (MyController.instance.widgetlist[index] is Model) {
                return ListTile(
                title: Text(
                (MyController.instance.widgetlist[index] as Model)
                    .label),
                );
                }
                return Container(height: 0,);
                },
                list: MyController.instance.widgetlist,
                isNativeAds: true)