pdavenue_ads_moentize 1.0.0 copy "pdavenue_ads_moentize: ^1.0.0" to clipboard
pdavenue_ads_moentize: ^1.0.0 copied to clipboard

PlatformAndroid

A Flutter plugin bridging the native Android Ads Monetize SDK to display standard (interstitial/rewarded), video, app open, native, and banner ads.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:pdavenue_ads_moentize/pdavenue_ads_moentize.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Monetize SDK Demo',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(
          seedColor: const Color(0xFF6200EE),
          brightness: Brightness.dark,
        ),
        useMaterial3: true,
      ),
      home: const AdsDemoHomeScreen(),
    );
  }
}

class AdsDemoHomeScreen extends StatefulWidget {
  const AdsDemoHomeScreen({super.key});

  @override
  State<AdsDemoHomeScreen> createState() => _AdsDemoHomeScreenState();
}

class _AdsDemoHomeScreenState extends State<AdsDemoHomeScreen> {
  bool _isSdkInitialized = false;
  String _sdkStatus = "Not Initialized";
  final TextEditingController _appIdController = TextEditingController(
    text: "ca-app-pub-3940256099942544~3347511714",
  );
  
  bool _appOpenBlocked = false;

  @override
  void initState() {
    super.initState();
    _checkInitStatus();
  }

  Future<void> _checkInitStatus() async {
    final init = await AdsSdk.isAdsInitialized();
    setState(() {
      _isSdkInitialized = init;
      _sdkStatus = init ? "Initialized Successfully" : "Not Initialized";
    });
  }

  Future<void> _initializeSdk() async {
    setState(() {
      _sdkStatus = "Initializing...";
    });
    try {
      final result = await AdsSdk.adsInitialize(
        appId: _appIdController.text,
        isDebugOn: true,
      );
      setState(() {
        _isSdkInitialized = true;
        _sdkStatus = "Initialized: $result";
      });
      
      // Call initAds to pre-load priority ads
      await AdsManager.initAds(isShowAds: "5", adsPriority: "1,2,3");
    } catch (e) {
      setState(() {
        _isSdkInitialized = false;
        _sdkStatus = "Error: $e";
      });
    }
  }

  void _triggerShowAd(String type) {
    AdsManager.showAds(
      isShowAds: type,
      eventName: "TEST_INTER_CLICK",
    );
  }

  Future<void> _triggerVideoAd(String type) async {
    final shown = await AdsManager.showVideoAds(
      isShowAds: type,
      eventName: "TEST_VIDEO_CLICK",
    );
    if (!mounted) return;
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text('Video ad closed. Ad shown: $shown')),
    );
  }

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Monetize SDK Demo'),
        centerTitle: true,
      ),
      body: SingleChildScrollView(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            // SDK Initialization Card
            Card(
              elevation: 4,
              child: Padding(
                padding: const EdgeInsets.all(16.0),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    const Text(
                      "SDK Configuration",
                      style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
                    ),
                    const SizedBox(height: 12),
                    TextField(
                      controller: _appIdController,
                      decoration: const InputDecoration(
                        labelText: 'App ID',
                        border: OutlineInputBorder(),
                      ),
                    ),
                    const SizedBox(height: 12),
                    Row(
                      mainAxisAlignment: MainAxisAlignment.spaceBetween,
                      children: [
                        Column(
                          crossAxisAlignment: CrossAxisAlignment.start,
                          children: [
                            const Text("Status:"),
                            Text(
                              _sdkStatus,
                              style: TextStyle(
                                fontWeight: FontWeight.bold,
                                color: _isSdkInitialized ? Colors.green : Colors.orange,
                              ),
                            ),
                          ],
                        ),
                        ElevatedButton(
                          onPressed: _initializeSdk,
                          child: const Text("Initialize Sdk"),
                        ),
                      ],
                    ),
                  ],
                ),
              ),
            ),
            const SizedBox(height: 16),

            // Ad Controls Card
            Card(
              elevation: 4,
              child: Padding(
                padding: const EdgeInsets.all(16.0),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    const Text(
                      "Trigger Ads",
                      style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
                    ),
                    const SizedBox(height: 12),
                    const Text("Standard Ads (showAds)"),
                    const SizedBox(height: 8),
                    Row(
                      children: [
                        Expanded(
                          child: ElevatedButton(
                            onPressed: () => _triggerShowAd("1"),
                            child: const Text("Interstitial"),
                          ),
                        ),
                        const SizedBox(width: 8),
                        Expanded(
                          child: ElevatedButton(
                            onPressed: () => _triggerShowAd("2"),
                            child: const Text("Rewarded"),
                          ),
                        ),
                      ],
                    ),
                    const SizedBox(height: 8),
                    Row(
                      children: [
                        Expanded(
                          child: ElevatedButton(
                            onPressed: () => _triggerShowAd("3"),
                            child: const Text("Redirect"),
                          ),
                        ),
                        const SizedBox(width: 8),
                        Expanded(
                          child: ElevatedButton(
                            onPressed: () => _triggerShowAd("4"),
                            child: const Text("Full Native"),
                          ),
                        ),
                      ],
                    ),
                    const SizedBox(height: 16),
                    const Text("Video Ads (showVideoAds)"),
                    const SizedBox(height: 8),
                    Row(
                      children: [
                        Expanded(
                          child: ElevatedButton(
                            onPressed: () => _triggerVideoAd("1"),
                            child: const Text("Video Inter"),
                          ),
                        ),
                        const SizedBox(width: 8),
                        Expanded(
                          child: ElevatedButton(
                            onPressed: () => _triggerVideoAd("2"),
                            child: const Text("Video Reward"),
                          ),
                        ),
                      ],
                    ),
                  ],
                ),
              ),
            ),
            const SizedBox(height: 16),

            // App Open Ad Controls Card
            Card(
              elevation: 4,
              child: Padding(
                padding: const EdgeInsets.all(16.0),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    const Text(
                      "App Open Ads Control",
                      style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
                    ),
                    const SizedBox(height: 12),
                    SwitchListTile(
                      title: const Text('Block App Open Ads'),
                      subtitle: const Text('Prevent ad overlay on app resume'),
                      value: _appOpenBlocked,
                      onChanged: (bool value) {
                        setState(() {
                          _appOpenBlocked = value;
                        });
                        if (value) {
                          AdsManager.blockAppOpen();
                        } else {
                          AdsManager.allowAppOpen();
                        }
                      },
                    ),
                    const SizedBox(height: 8),
                    Center(
                      child: ElevatedButton.icon(
                        onPressed: () => AdsManager.showAppOpen(),
                        icon: const Icon(Icons.open_in_new),
                        label: const Text("Force Show App Open Ad"),
                      ),
                    ),
                  ],
                ),
              ),
            ),
            const SizedBox(height: 16),

            // Native Ad Layout Demo Card
            Card(
              elevation: 4,
              child: Padding(
                padding: const EdgeInsets.all(16.0),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    const Text(
                      "Embedded Native Ad Widget",
                      style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
                    ),
                    const SizedBox(height: 12),
                    const SizedBox(
                      height: 320,
                      child: MonetizeNativeAd(
                        eventName: "DEMO_NATIVE_AD",
                        type: NativeAdsType.BIG,
                      ),
                    ),
                  ],
                ),
              ),
            ),
            const SizedBox(height: 16),

            // Banner Ad Layout Demo Card
            Card(
              elevation: 4,
              child: Padding(
                padding: const EdgeInsets.all(16.0),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    const Text(
                      "Embedded Banner Ad Widget",
                      style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
                    ),
                    const SizedBox(height: 12),
                    const SizedBox(
                      height: 60,
                      child: MonetizeBannerAd(
                        eventName: "DEMO_BANNER_AD",
                        bannerType: BannerType.ADAPTIVE,
                      ),
                    ),
                  ],
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}
0
likes
150
points
110
downloads

Documentation

API reference

Publisher

verified publisherads.pdavenue.com

Weekly Downloads

A Flutter plugin bridging the native Android Ads Monetize SDK to display standard (interstitial/rewarded), video, app open, native, and banner ads.

Homepage

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on pdavenue_ads_moentize

Packages that implement pdavenue_ads_moentize