zmxn 0.0.2 copy "zmxn: ^0.0.2" to clipboard
zmxn: ^0.0.2 copied to clipboard

outdated

Ads Implementation

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:zmxn/ads/const.dart';
import 'package:zmxn/zmxn.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();
  FacebookAds.instance.initialize();
  runApp(MaterialApp(home: 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';

  Widget _nativeAd = Container(height: 0);
  Widget _nativeAd2 = Container(height: 0);
  Widget _nativeAd4 = Container(height: 0);
  Widget _bannerAd = Container(height: 0);

  @override
  void initState() {
    super.initState();
    Future.delayed(
        const Duration(seconds: 1),
        () => {
              convertAdsSettings(appVersionCode: 1, jsonData: """
           {

  "is_all_ads": true,
  "is_follow_loop_sequence_ads": false,
  "ads_sequence": ["facebook_ads", "ad_manager_ads", "app_lovin_ads"],
  "intra_ads_sequence": ["facebook_ads", "ad_manager_ads", "google_ads"],
  "rewards_ads_sequence": ["facebook_ads", "ad_manager_ads"],
  "native_ads_sequence": ["google_ads"],
  "banner_ads_sequence": ["app_lovin_ads","ad_manager_ads", "google_ads"],
  "open_ads_sequence": ["facebook_ads", "google_ads"],
  "more_app_url": "https://play.google.com/store/apps/developer?id=Bit+Links",
  "more_live_apps": "https://gitlab.com/vs.bitcoding/live_apps/-/raw/main/live_apps.json",
  "ad_setting": {
    "app_version_code": 5,
    "onesignal_id": "07de0128-c4bc-45f0-8baa-6867a262a6b7",
    "intra_dismiss_impression": 0,
    "ads_loading_text": "Ad is loading...",
    "ads_loading_text_minimum_millseconds": 4000,
    "ads_retry_maximum_millseconds": 5000,
    "ads_retry": 1,
    "intra_interval_click": 2,
    "intra_time_interval": 0,
    "native_interval_grid": 3
  },
  "google_ads": {
    "banner_ad_id": "/6499/example/banner",
    "intra_ad_id": "/6499/example/interstitial",
    "open_ad_id": "/6499/example/app-open",
    "native_ad_id": "/6499/example/native",
    "reward_ad_id": "ca-app-pub-3940256099942544/5224354917",
    "native_video_ad_id": "/6499/example/native-video",
    "is_redirect_custom_impression": false,
    "is_banner_ad": true,
    "is_open_ad": true,
    "is_intra_ad": true,
    "is_reward_ad": true,
    "is_native_ad": true,
    "intra_interval_click": 2,
    "intra_time_interval": 0
  },
  "ad_manager_ads": {
    "banner_ad_id": "/6499/example/banner",
    "intra_ad_id": "/6499/example/interstitial",
    "open_ad_id": "/6499/example/app-open",
    "native_ad_id": "/6499/example/native",
    "reward_ad_id": "ca-app-pub-3940256099942544/5224354917",
    "native_video_ad_id": "/6499/example/native-video",
    "is_redirect_custom_impression": false,
    "is_banner_ad": true,
    "is_open_ad": true,
    "is_intra_ad": true,
    "is_reward_ad": true,
    "is_native_ad": true,
    "intra_interval_click": 2,
    "intra_time_interval": 0
  },
  "facebook_ads": {
    "banner_ad_id": "IMG_16_9_APP_INSTALL#YOUR_PLACEMENT_ID",
    "intra_ad_id": "IMG_16_9_APP_INSTALL#YOUR_PLACEMENT_ID",
    "open_ad_id": "",
    "native_ad_id": "IMG_16_9_APP_INSTALL#YOUR_PLACEMENT_ID",
    "reward_ad_id": "IMG_16_9_APP_INSTALL#YOUR_PLACEMENT_ID",
    "native_video_ad_id": "/6499/example/native-video",
    "is_redirect_custom_impression": false,
    "is_banner_ad": true,
    "is_open_ad": true,
    "is_intra_ad": true,
    "is_reward_ad": true,
    "is_native_ad": true,
    "intra_interval_click": 2,
    "intra_time_interval": 0
  },
  "app_lovin_ads": {
    "sdk_key": "vLSFvlX2XT2wT8PymW4kBiP0b2mcxQ2lbd1VSrvwA1fQ46J9lPPiB8BNnrTyDDsIF9R8WuPULt2GCNrgrEdzcR",
    "banner_ad_id": "c3fbe43e7fd2e314",
    "mrec_banner_ad_id": "c3fbe43e7fd2e314",
    "is_redirect_custom_impression": false,
    "intra_ad_id": "f4c06b322d61c5af",
    "open_ad_id": "cd532027901441ce",
    "native_ad_id": "1f55b34f63a9eb73",
    "reward_ad_id": "4589bdf3b7056ef5",
    "is_banner_ad": true,
    "is_open_ad": true,
    "is_intra_ad": true,
    "is_reward_ad": true,
    "is_native_ad": true,
    "intra_interval_click": 2,
    "intra_time_interval": 0
  }
}
              """).then((value) => {
                    if ((getAdsSettings()?.appLovin?.sdkKey ?? "").isNotEmpty)
                      {
                        AppLovinAds.instance
                            .initialize(
                                getAdsSettings()?.appLovin?.sdkKey ?? "")
                            .then((value) async {
                          initOpenAds(
                              context: context,
                              onOpenAdLoaded: () {
                                showOpenAds(context);
                              });
                          loadIntraAds();
                          loadRewardAds();
                          showNativeAds(
                            customOptions: {
                              "btn_colors": ["#00F0F0"],
                              "btn_corner_radius" : 18.5,
                              "btn_text_color" : "#8bc34ae0",
                              "btn_gradient_orientation" : GradientOrientation.TOP_BOTTOM.index,
                              "text_heading_colors" : "#8bc34ae0",
                              "text_body_colors" : "#8bc34ae0",
                              "text_store_colors" : "#8bc34ae0",
                              "text_fonts" : "mooli_regular.ttf",
                            },
                            onAdLoadedCallback: (p0) {
                              setState(() {
                                _nativeAd = p0;
                              });
                            },
                          );
                          showBannerAds(
                            size: AdSize.mediumRectangle,
                            margin: EdgeInsets.symmetric(vertical: 24),
                            onAdLoadedCallback: (p0) {
                              setState(() {
                                _bannerAd = p0;
                              });
                            },
                          );
                        })
                      },
                  })
            });
  }

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Ads example app'),
        actions: <Widget>[
          PopupMenuButton<String>(
            onSelected: (String result) {
              switch (result) {
                case 'InterstitialAd':
                  showIntraAds(
                      context: context,
                      callback: () => {
                            print(
                                "as dasd asd asd asd asd Old  Show Completed true")
                          });
                  break;
                case 'RewardedAd':
                  showRewardAds(
                      context: context,
                      callback: () => {print("Show Completed true")},
                      onSkippedCallback: () => {print("Skipped Ad true")},
                      onFailedCallback: () => {
                            showIntraAds(
                                context: context,
                                isCompulsory: true,
                                callback: () =>
                                    {print("Show Completed onFailedCallback")})
                          });
                  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'),
              ),
            ],
          ),
        ],
      ),
      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(context: context, 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(
                    context: context,
                    callback: () {},
                    onFailedCallback: () {
                      print("sdf sdf sdf sdfsd f");
                    });
              },
              child: const Text('REWARD ADS'),
            ),
            SizedBox(height: 20),
            _nativeAd4,
          ]),
        ),
      ),
      bottomNavigationBar: _bannerAd,
    );
  }
}