Flutter广告集成插件flutter_good_ads的使用

发布于 1周前 作者 itying888 来自 Flutter

Flutter广告集成插件flutter_good_ads的使用

功能特性

Banner广告

  • 自动配置和加载
  • 安全加载,具有间隔时间

插屏广告

  • 安全加载和展示,具有间隔时间

开始使用(更多详情请参阅示例)

导入库

pubspec.yaml 文件中添加依赖:

flutter pub add flutter_good_ads

并在你的 Dart 文件中导入:

import 'package:flutter_good_ads/flutter_good_ads.dart';

初始化

确保在应用启动时初始化广告服务:

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();

  runApp(MyApp());
}

使用方法

Banner广告

将以下代码块放置在你希望展示广告的位置:

GoodBanner(
  adUnitId: 'ca-app-pub-3940256099942544/6300978111', // 替换为你的广告单元ID
  adRequest: AdRequest(),
  interval: 60000, // 广告刷新间隔时间(单位:毫秒)
  adSize: AdSize.banner,
)

插屏广告

  1. 声明一个 GoodInterstitial 对象
final interstitialAd = const GoodInterstitial(
  adUnitId: 'ca-app-pub-3940256099942544/8691691433', // 替换为你的广告单元ID
  adRequest: AdRequest(),
  interval: 60000, // 广告刷新间隔时间(单位:毫秒)
);
  1. 在组件生命周期内调用 load() 方法
[@override](/user/override)
void initState() {
  super.initState();
  interstitialAd.load();
}
  1. 在你需要展示广告的地方调用 show() 方法
if (_counter % 5 == 0) {
  interstitialAd.show(reloadAfterShow: true);
}

示例代码

以下是完整的示例代码:

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

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();

  runApp(const MyApp());
}

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(useMaterial3: true),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);
  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  final interstitialAd = const GoodInterstitial(
    adUnitId: 'ca-app-pub-3940256099942544/8691691433', // 替换为你的广告单元ID
    adRequest: AdRequest(),
    interval: 60000, // 广告刷新间隔时间(单位:毫秒)
  );

  [@override](/user/override)
  void initState() {
    super.initState();
    interstitialAd.load();
  }

  void _incrementCounter() {
    setState(() {
      _counter++;
      if (_counter % 5 == 0) {
        interstitialAd.show(reloadAfterShow: true);
      }
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            const Text('你已经点击了按钮这么多次:'),
            Text('$_counter', style: Theme.of(context).textTheme.headline4),
            const GoodBanner(
              adUnitId: 'ca-app-pub-3940256099942544/6300978111', // 替换为你的广告单元ID
              adRequest: AdRequest(),
              interval: 60000, // 广告刷新间隔时间(单位:毫秒)
              adSize: AdSize.banner,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: '增加',
        child: const Icon(Icons.add),
      ),
    );
  }
}

更多关于Flutter广告集成插件flutter_good_ads的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter广告集成插件flutter_good_ads的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是如何在Flutter项目中集成并使用flutter_good_ads插件的一个示例代码案例。这个插件通常用于在Flutter应用中集成和管理广告。

首先,确保你已经在pubspec.yaml文件中添加了flutter_good_ads依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_good_ads: ^最新版本号  # 请替换为实际的最新版本号

然后运行flutter pub get来安装依赖。

接下来,你需要进行一些初始化工作,包括配置广告平台(如AdMob)的ID。以下是一个基本的示例,展示了如何初始化flutter_good_ads并在应用中显示一个横幅广告。

1. 初始化插件

在你的主应用文件(通常是main.dart)中,导入flutter_good_ads包并进行初始化。

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

void main() {
  // 初始化广告插件
  FlutterGoodAds.instance.initialize(
    appId: '你的AdMob应用ID', // 替换为你的AdMob应用ID
    testDevices: Platform.isAndroid
        ? ['YOUR_ANDROID_TEST_DEVICE_ID'] // 可选,用于测试设备
        : [],
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

2. 显示横幅广告

在你的MyHomePage类中,你可以使用BannerAd组件来显示横幅广告。

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  BannerAd? _bannerAd;

  @override
  void initState() {
    super.initState();
    // 创建横幅广告实例
    _bannerAd = BannerAd(
      adUnitId: '你的横幅广告单元ID', // 替换为你的横幅广告单元ID
      adSize: AdSize.banner,
      listener: BannerAdListener(
        onAdLoaded: () {
          print('Banner Ad Loaded');
        },
        onAdFailedToLoad: (AdError error) {
          print('Banner Ad Failed to Load: ${error.message}');
        },
        onAdOpened: () {
          print('Banner Ad Opened');
        },
        onAdClosed: () {
          print('Banner Ad Closed');
        },
      ),
    );

    // 加载广告
    _bannerAd?.load();
  }

  @override
  void dispose() {
    // 释放广告资源
    _bannerAd?.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Good Ads Example'),
      ),
      body: Center(
        child: _bannerAd?.widget ?? CircularProgressIndicator(),
      ),
    );
  }
}

在这个示例中,我们创建了一个BannerAd实例,并在initState方法中加载广告。如果广告加载成功,_bannerAd?.widget将被用于显示广告;如果广告尚未加载,则显示一个CircularProgressIndicator

注意事项

  1. 广告单元ID:确保你已经从AdMob或其他广告平台获取了正确的广告单元ID。
  2. 测试设备:在开发过程中,你可以添加测试设备ID以避免产生不必要的广告点击费用。
  3. 隐私政策:在实际应用中显示广告时,确保你的应用有一个隐私政策,并告知用户有关广告的使用情况。

这只是一个基本的示例,flutter_good_ads插件还支持更多类型的广告(如插屏广告和全屏视频广告),你可以根据文档进一步集成和使用这些功能。

回到顶部