Flutter广告集成插件bit_ads_package的使用

Flutter广告集成插件bit_ads_package的使用

在本教程中,我们将介绍如何使用bit_ads_package插件来集成UnityAds和Admob广告到您的Flutter应用程序中。该插件允许您轻松加载和展示插屏广告(Interstitial Ads)、奖励视频广告(Rewarded Ads)以及横幅广告(Banner Ads)。以下是完整的步骤和代码示例。


Getting Started

初始化插件

main()函数中初始化插件:

void main() {
  // 初始化 UnityAds 和 Google Ads 插件
  Unityads.initUnit(); // 初始化 UnityAds
  Googleads.init(); // 初始化 Google Ads
  runApp(MyApp());
}

UnityAds 使用

加载插屏广告

加载UnityAds插屏广告:

Unityads.unityIntraLoad();

展示插屏广告

展示插屏广告时,您可以监听广告的生命周期事件:

UnityAds.showVideoAd(
  placementId: 'PLACEMENT_ID', // 替换为您的广告位ID
  onStart: (placementId) => print('Video Ad $placementId started'), // 广告开始播放
  onClick: (placementId) => print('Video Ad $placementId click'), // 用户点击广告
  onSkipped: (placementId) => print('Video Ad $placementId skipped'), // 用户跳过广告
  onComplete: (placementId) => print('Video Ad $placementId completed'), // 广告播放完成
  onFailed: (placementId, error, message) =>
      print('Video Ad $placementId failed: $error $message'), // 广告加载失败
);

显示横幅广告

在布局中添加横幅广告:

// 在布局中调用 unityBannerShow 方法
Unityads.unityBannerShow;

Admob Ads 使用

添加 Admob 应用 ID

在Android项目的AndroidManifest.xml文件中添加以下内容:

<manifest>
  <application>
    <meta-data
      android:name="com.google.android.gms.ads.APPLICATION_ID"
      android:value="ca-app-pub-3940256099942544~3347511713"/>
  </application>
</manifest>

加载和展示横幅广告

展示Admob横幅广告:

Googleads.bannerAdsShow();

加载插屏广告和奖励视频广告

加载插屏广告和奖励视频广告:

Googleads.loadReward(); // 加载奖励视频广告
Googleads.loadIntra(); // 加载插屏广告

展示插屏广告

展示插屏广告前检查是否已加载:

final isLoaded = await interstitialAd.isLoaded();
if (isLoaded ?? false) {
  interstitialAd.show();
} else {
  showSnackBar('Interstitial ad is still loading...');
}

展示奖励视频广告

展示奖励视频广告前检查是否已加载:

if (await rewardAd.isLoaded()) {
  rewardAd.show();
} else {
  showSnackBar('Reward ad is still loading...');
}

完整示例代码

以下是一个完整的示例代码,展示了如何集成UnityAds和Admob广告:

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

void main() {
  // 初始化插件
  Unityads.initUnit();
  Googleads.init();

  runApp(MyApp());
}

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

class HomePage extends StatefulWidget {
  [@override](/user/override)
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  bool _bannerVisible = false;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Bit Ads Package Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: () {
                // 展示UnityAds插屏广告
                UnityAds.showVideoAd(
                  placementId: 'PLACEMENT_ID',
                  onStart: (placementId) => print('Video Ad $placementId started'),
                  onClick: (placementId) => print('Video Ad $placementId click'),
                  onSkipped: (placementId) => print('Video Ad $placementId skipped'),
                  onComplete: (placementId) => print('Video Ad $placementId completed'),
                  onFailed: (placementId, error, message) =>
                      print('Video Ad $placementId failed: $error $message'),
                );
              },
              child: Text('Show UnityAds Interstitial'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () async {
                // 展示Admob插屏广告
                final isLoaded = await interstitialAd.isLoaded();
                if (isLoaded ?? false) {
                  interstitialAd.show();
                } else {
                  ScaffoldMessenger.of(context).showSnackBar(
                    SnackBar(content: Text('Interstitial ad is still loading...')),
                  );
                }
              },
              child: Text('Show Admob Interstitial'),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                // 切换横幅广告的可见性
                setState(() {
                  _bannerVisible = !_bannerVisible;
                });
              },
              child: Text(_bannerVisible ? 'Hide Banner' : 'Show Banner'),
            ),
            if (_bannerVisible) Unityads.unityBannerShow,
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


bit_ads_package 是一个用于在 Flutter 应用中集成广告的插件。它支持多种广告类型,如横幅广告、插页式广告、激励视频广告等。以下是如何使用 bit_ads_package 插件的基本步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 bit_ads_package 依赖:

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

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

2. 初始化广告插件

在应用的 main.dart 文件中初始化广告插件。通常,你需要在 main() 函数中调用初始化方法:

import 'package:bit_ads_package/bit_ads_package.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化广告插件
  await BitAdsPackage.initialize(
    appId: 'YOUR_APP_ID',  // 替换为你的应用ID
    testMode: true,  // 测试模式,发布时设置为 false
  );
  
  runApp(MyApp());
}

3. 显示横幅广告

要在应用中显示横幅广告,可以使用 BannerAdWidget

import 'package:bit_ads_package/bit_ads_package.dart';

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Banner Ad Example'),
      ),
      body: Column(
        children: [
          Expanded(
            child: Center(
              child: Text('Your content here'),
            ),
          ),
          BannerAdWidget(adUnitId: 'YOUR_BANNER_AD_UNIT_ID'),  // 替换为你的横幅广告单元ID
        ],
      ),
    );
  }
}

4. 显示插页式广告

要显示插页式广告,可以使用 InterstitialAd

import 'package:bit_ads_package/bit_ads_package.dart';

class MyHomePage extends StatelessWidget {
  Future<void> _showInterstitialAd() async {
    await InterstitialAd.load(
      adUnitId: 'YOUR_INTERSTITIAL_AD_UNIT_ID',  // 替换为你的插页式广告单元ID
    );
    await InterstitialAd.show();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Interstitial Ad Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _showInterstitialAd,
          child: Text('Show Interstitial Ad'),
        ),
      ),
    );
  }
}

5. 显示激励视频广告

要显示激励视频广告,可以使用 RewardedAd

import 'package:bit_ads_package/bit_ads_package.dart';

class MyHomePage extends StatelessWidget {
  Future<void> _showRewardedAd() async {
    await RewardedAd.load(
      adUnitId: 'YOUR_REWARDED_AD_UNIT_ID',  // 替换为你的激励视频广告单元ID
    );
    await RewardedAd.show();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Rewarded Ad Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _showRewardedAd,
          child: Text('Show Rewarded Ad'),
        ),
      ),
    );
  }
}

6. 处理广告事件

你可以监听广告事件,例如广告加载成功、广告关闭等:

InterstitialAd.onAdLoaded.listen((event) {
  print('Interstitial Ad Loaded');
});

InterstitialAd.onAdClosed.listen((event) {
  print('Interstitial Ad Closed');
});

RewardedAd.onAdLoaded.listen((event) {
  print('Rewarded Ad Loaded');
});

RewardedAd.onAdClosed.listen((event) {
  print('Rewarded Ad Closed');
});
回到顶部