Flutter广告横幅稳定显示插件admob_banner_stabilizer的使用

admob_banner_stabilizer简介

admob_banner_stabilizer 是一个用于轻松使用 firebase_admob 包中的横幅广告的插件。它可以帮助开发者更方便地在应用中显示稳定的广告横幅。

admob_widget_record

特性

  • 广告与Widget在同一位置显示
    AdmobBannerWidget 的构建方法返回一个 Container,但广告会精确地放置在这个 Container 上。

  • Widget高度与广告高度匹配,便于布局
    这确保了广告和按钮不会重叠。

  • 当Widget从Widget树中移除时,广告也会消失
    广告本身可以像Widget一样被处理,无需额外编写代码来移除广告。

  • 支持Navigator
    当从上方推送另一个页面时,广告会消失。

  • 支持设备方向的变化
    如果设备的方向发生变化,广告会先消失,然后在新位置重新出现。

  • 连续屏幕切换后不会崩溃
    可以连续释放此Widget。

插件admob_banner_stabilizer使用步骤

初始化firebase_admob插件

在使用 AdmobBannerWidget 之前,需要初始化 firebase_admob 插件。

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await FirebaseAdMob.instance.initialize(
      appId: Platform.isAndroid
          // AdMob App ID for Firebase Demo Project (Flood-It!)
          ? 'ca-app-pub-8123415297019784~2664022459'
          // 测试用GADApplicationIdentifier。参见https://developers.google.com/admob/ios/quick-start?hl=en
          : 'ca-app-pub-3940256099942544~1458002511');
  runApp(MyApp());
}
在应用中放置广告

AdmobBannerWidget 放置在希望广告显示的位置。

class MyApp extends StatelessWidget {
  const MyApp();
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(),
        body: AdMobBannerWidget(
          adUnitId: BannerAd.testAdUnitId,
        ),
      ),
    );
  }
}

注意事项

  • 无法指定广告大小
    广告大小将是 SafeArea 高度的1/8内可显示的最大尺寸。参考 AdMobBanner 的SmartBanner标准。

  • 广告无法随Widget移动
    它们只是简单地出现和消失。不能将其作为滚动列表的一部分使用。

  • 无法在后台运行广告
    它仅计算Widget的位置并将广告置于其前方。无法隐藏广告。

示例代码

以下是一个完整的示例代码,展示了如何使用 admob_banner_stabilizer 插件。

import 'dart:io';

import 'package:flutter/material.dart';

import 'package:firebase_admob/firebase_admob.dart';
import 'package:admob_banner_stabilizer/admob_banner_stabilizer.dart';

// 此示例不包含Navigator。
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await FirebaseAdMob.instance.initialize(
      appId: Platform.isAndroid
          // AdMob App ID for Firebase Demo Project (Flood-It!)
          ? 'ca-app-pub-8123415297019784~2664022459'
          // 测试用GADApplicationIdentifier。参见https://developers.google.com/admob/ios/quick-start?hl=en
          : 'ca-app-pub-3940256099942544~1458002511');
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp();
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyBody(),
    );
  }
}

class MyBody extends StatefulWidget {
  const MyBody({
    Key key,
  }) : super(key: key);

  [@override](/user/override)
  _MyBodyState createState() => _MyBodyState();
}

class _MyBodyState extends State<MyBody> {
  bool isUpperPosition = true;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Column(
        children: [
          SizedBox(height: isUpperPosition ? 50 : 150),
          Text("↓↓↓↓↓↓↓↓↓↓↓↓↓ AD HERE ↓↓↓↓↓↓↓↓↓↓↓↓↓"),
          AdMobBannerWidget(
            adUnitId: BannerAd.testAdUnitId,
            backgroundColor: Colors.yellow,
          ),
          Text("↑↑↑↑↑↑↑↑↑↑↑↑↑ AD HERE ↑↑↑↑↑↑↑↑↑↑↑↑↑"),
          RaisedButton(
              child: Text('Change Ad Position'),
              onPressed: () {
                setState(() {
                  isUpperPosition = !isUpperPosition;
                });
              })
        ],
      ),
    );
  }
}

更多关于Flutter广告横幅稳定显示插件admob_banner_stabilizer的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter广告横幅稳定显示插件admob_banner_stabilizer的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


admob_banner_stabilizer 是一个用于在 Flutter 应用中稳定显示 AdMob 广告横幅的插件。它可以帮助解决在 Flutter 应用中 AdMob 广告横幅可能出现的闪烁、抖动或位置不稳定的问题。

安装插件

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

dependencies:
  flutter:
    sdk: flutter
  admob_banner_stabilizer: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装插件。

配置 AdMob

在使用 AdMob 广告之前,你需要在 AdMob 控制台中创建广告单元 ID,并在你的 Flutter 应用中进行配置。

  1. 获取 AdMob 应用 ID 和广告单元 ID

    • 登录 AdMob 控制台。
    • 创建一个新的应用(如果还没有)。
    • 为你的应用创建一个横幅广告单元,并获取广告单元 ID。
  2. AndroidManifest.xml 中配置 AdMob 应用 ID: 打开 android/app/src/main/AndroidManifest.xml 文件,在 <application> 标签中添加以下内容:

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

    ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy 替换为你的 AdMob 应用 ID。

  3. Info.plist 中配置 AdMob 应用 ID(仅适用于 iOS): 打开 ios/Runner/Info.plist 文件,添加以下内容:

    <key>GADApplicationIdentifier</key>
    <string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
    

    同样,将 ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy 替换为你的 AdMob 应用 ID。

使用 admob_banner_stabilizer

在你的 Flutter 应用中使用 admob_banner_stabilizer 插件来显示稳定的 AdMob 广告横幅。

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

class MyHomePage extends StatelessWidget {
  final String adUnitId = 'ca-app-pub-3940256099942544/6300978111'; // 测试广告单元 ID

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('AdMob Banner Stabilizer Example'),
      ),
      body: Column(
        children: [
          Expanded(
            child: Center(
              child: Text('Your app content here'),
            ),
          ),
          AdmobBannerStabilizer(
            adUnitId: adUnitId,
            adSize: AdSize.banner,
          ),
        ],
      ),
    );
  }
}
回到顶部