Flutter广告集成插件adrop_ads_admob的使用

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

Flutter广告集成插件adrop_ads_admob的使用

Adrop Ads Admob Mediation 插件是一个用于在 Flutter 应用中集成 AdMob 广告的插件。

文档

请参阅我们的集成文档 这里

示例代码

以下是一个完整的示例代码,展示如何在 Flutter 应用中集成 AdMob 广告。

import 'dart:async';
import 'dart:io';

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

void main() {
  // 初始化 Flutter 框架绑定
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化移动广告
  unawaited(MobileAds.instance.initialize());
  
  // 运行应用
  runApp(const MyApp());
  
  // 初始化 Adrop SDK
  Adrop.initialize(false);
}

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

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  // 定义广告单元 ID
  final adUnitId = Platform.isAndroid
      ? 'ca-app-pub-3141837772329875/5738237096'
      : 'ca-app-pub-3141837772329875/5227710010';

  // 广告初始化状态
  InitializationStatus? status;
  
  // Banner 广告对象
  BannerAd? _bannerAd;
  
  // 是否已加载广告
  bool _isLoaded = false;

  // 加载广告的方法
  void loadAd() {
    // 创建 Banner 广告对象
    _bannerAd = BannerAd(
      adUnitId: adUnitId, // 使用定义的广告单元 ID
      request: const AdRequest(), // 请求配置
      size: AdSize.largeBanner, // 广告尺寸
      listener: BannerAdListener( // 广告监听器
        onAdLoaded: (ad) {
          // 当广告加载成功时打印日志并更新 UI 状态
          debugPrint('$ad loaded.');
          setState(() {
            _isLoaded = true;
          });
        },
        onAdFailedToLoad: (ad, err) {
          // 当广告加载失败时打印日志并更新 UI 状态
          setState(() {
            _isLoaded = false;
          });
          debugPrint('BannerAd failed to load: $err');
          ad.dispose(); // 销毁广告对象
        },
      ),
    )..load(); // 加载广告
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Center(child: Text('Adrop for Admob mediation')), // 设置应用标题
        ),
        body: Center(
          child: Column(
            children: [
              // 显示按钮,点击后加载广告
              TextButton(onPressed: loadAd, child: const Text("Load Ad")),
              const SizedBox(height: 32), // 添加间距
              
              // 如果广告已加载,则显示广告
              if (_isLoaded && _bannerAd != null)
                Align(
                  alignment: Alignment.bottomCenter, // 对齐方式
                  child: SafeArea(
                    child: SizedBox(
                      width: _bannerAd!.size.width.toDouble(), // 设置宽度
                      height: _bannerAd!.size.height.toDouble(), // 设置高度
                      child: AdWidget(ad: _bannerAd!), // 显示广告
                    ),
                  ),
                ),
            ],
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


当然,以下是一个关于如何在Flutter项目中集成并使用adrop_ads_admob插件的示例代码。这个插件允许你在Flutter应用中集成Google AdMob广告。

1. 添加依赖

首先,你需要在pubspec.yaml文件中添加adrop_ads_admob依赖:

dependencies:
  flutter:
    sdk: flutter
  adrop_ads_admob: ^latest_version  # 请替换为最新的版本号

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

2. 配置AdMob

android/app/src/main/AndroidManifest.xml中添加必要的AdMob配置,包括你的应用ID(通常是ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx的一部分):

<meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx"/>

3. 初始化AdMob

在你的Flutter应用的入口文件(通常是main.dart)中初始化AdMob:

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

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化AdMob
  AdropAdmob.instance.init(
    appId: 'ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx', // 替换为你的AdMob应用ID
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter AdMob Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

4. 显示Banner广告

在你的主页面或其他页面中显示Banner广告:

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

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

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

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

    // 创建Banner广告
    _bannerAd = BannerAd(
      adUnitId: 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx', // 替换为你的Banner广告单元ID
      size: AdSize.banner,
      listener: BannerAdListener(
        onAdLoaded: () {
          print('Banner Ad Loaded');
        },
        onAdFailedToLoad: (AdLoadError error) {
          print('Banner Ad Failed to Load: ${error.message}');
        },
        onAdOpened: () {
          print('Banner Ad Opened');
        },
        onAdClosed: () {
          print('Banner Ad Closed');
        },
        onAdLeftApplication: () {
          print('Banner Ad Left Application');
        },
      ),
    );

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter AdMob Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            // 显示Banner广告
            Container(
              height: 50,
              child: AdWidget(ad: _bannerAd!),
            ),
          ],
        ),
      ),
    );
  }

  @override
  void dispose() {
    _bannerAd?.dispose();
    super.dispose();
  }
}

5. 显示Interstitial广告

如果你还想显示Interstitial广告,可以类似地创建和显示:

import 'package:adrop_ads_admob/adrop_ads_admob.dart';

// 在需要显示Interstitial广告的地方
void _showInterstitialAd() {
  InterstitialAd _interstitialAd = InterstitialAd(
    adUnitId: 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx', // 替换为你的Interstitial广告单元ID
    listener: InterstitialAdListener(
      onAdLoaded: () {
        _interstitialAd.show();
      },
      onAdFailedToLoad: (AdLoadError error) {
        print('Interstitial Ad Failed to Load: ${error.message}');
      },
      onAdOpened: () {
        print('Interstitial Ad Opened');
      },
      onAdClosed: () {
        print('Interstitial Ad Closed');
      },
    ),
  );

  // 加载广告
  _interstitialAd.load();
}

你可以根据需要在适当的地方调用_showInterstitialAd()函数来显示Interstitial广告。

这些代码示例展示了如何在Flutter应用中集成和使用adrop_ads_admob插件来显示Banner和Interstitial广告。请确保你已经替换了所有示例代码中的AdMob广告单元ID为你的实际ID。

回到顶部