Flutter广告集成插件adivery_ads的使用

Flutter广告集成插件adivery_ads的使用

moein kasa .@@=> mkasaii16@gmail.com
https://mfuzzy.com

开始

Adivery Ads 是一个 Flutter 插件,它允许你在 Flutter 应用程序中无缝集成 Adivery 广告服务。

特性

  • 支持横幅广告、插屏广告和激励视频广告。
  • 易于集成,并且可以自定义广告位置。
  • 轻量级且高效。

安装

pubspec.yaml 文件中添加以下依赖项:

dependencies:
  adivery_ads: ^0.0.3

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

使用指南

初始化插件

首先,导入插件:

import 'package:adivery_ads/adivery.dart';
import 'package:adivery_ads/adivery_ads.dart';

initState 方法中初始化插件,并开始使用:

void initState() {
  initPlatformState();
  super.initState();
}

初始化方法如下:

void initPlatformState() {
  // 初始化插件并设置日志记录功能
  AdiveryPlugin.initialize("7e27fb38-5aff-473a-998f-437b89426f66");
  AdiveryPlugin.setLoggingEnabled(true);

  // 准备插屏广告和激励视频广告
  AdiveryPlugin.prepareInterstitialAd("de5db046-765d-478f-bb2e-30dc2eaf3f51");
  AdiveryPlugin.prepareRewardedAd("3f97dc4d-3e09-4024-acaf-931862c03ba8");

  // 添加事件监听器
  AdiveryPlugin.addListener(
    onError: onError,
    onInterstitialLoaded: onInterstitialLoaded,
    onRewardedClosed: onRewardedClosed,
    onRewardedLoaded: (placement) {},
  );
}

事件监听器

以下是事件监听器的实现:

static void onInterstitialLoaded(String placement) {
  debugPrint("interstitial loaded");
}

static void onRewardedClosed(String placement, bool isRewarded) {
  debugPrint("ad rewarded: $isRewarded");
}

static void onError(String placement, String error) {
  debugPrint("onError$error");
}

static void _onAdLoaded(Ad ad) {
  debugPrint("banner loaded");
}

static void _onAdClicked(Ad ad) {
  debugPrint("banner clicked");
}

static void _onError(Ad ad, String error) {
  debugPrint("banner load failed $error");
}

主页面

在主页面中展示横幅广告和其他组件:

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            const Text('你已经按下了按钮多少次:'),
            // 展示横幅广告
            BannerAd(
              "2f71ec44-f30a-4043-9cc1-f32347a07f8b",
              BannerAdSize.BANNER,
              onAdLoaded: _onAdLoaded,
              onAdClicked: _onAdClicked,
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headlineMedium,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          _incrementCounter();
        },
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ),
    );
  }

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }
}

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

1 回复

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


当然,以下是如何在Flutter项目中集成和使用adivery_ads插件的详细步骤和代码示例。假设你已经有一个Flutter项目并且已经设置好了基本的开发环境。

1. 添加依赖

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

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

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

2. 配置Android平台

2.1 在android/app/src/main/AndroidManifest.xml中添加必要的权限(如果需要)

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <!-- 其他配置 -->

</manifest>

2.2 在android/app/build.gradle中添加ProGuard规则(如果需要)

android {
    ...
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

proguard-rules.pro文件中添加:

-keep class com.adivery.** { *; }

3. 配置iOS平台

3.1 在ios/Runner/Info.plist中添加必要的配置(如果需要)

通常广告SDK不需要特殊的Info.plist配置,但确保你的应用有网络访问权限。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

4. 初始化Adivery Ads

在你的Flutter项目的main.dart或任何合适的位置初始化Adivery Ads。

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

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化Adivery Ads
  AdiveryAds.instance.initialize(
    appId: '你的Adivery App ID', // 替换为你的Adivery App ID
    testMode: kDebugMode, // 在开发模式下启用测试模式
  );

  runApp(MyApp());
}

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

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  BannerAd? _bannerAd;

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

    // 加载横幅广告
    _loadBannerAd();
  }

  void _loadBannerAd() {
    BannerAd.createBannerAd(
      adUnitId: '你的横幅广告单元ID', // 替换为你的横幅广告单元ID
      adSize: AdSize.banner,
      listener: (AdEvent event, Map<String, dynamic>? info) {
        print('BannerAd event is $event');
        if (event == AdEvent.loaded) {
          _bannerAd?.show();
        }
      },
    ).then((bannerAd) {
      setState(() {
        _bannerAd = bannerAd;
      });
    }).catchError((error) {
      print('Failed to load banner ad: $error');
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Adivery Ads Example'),
      ),
      body: Center(
        child: _bannerAd != null ? Container() : CircularProgressIndicator(),
      ),
    );
  }

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

5. 显示广告

在上面的代码中,当横幅广告加载完成时,它会自动显示。你也可以在需要显示广告的地方手动调用_bannerAd?.show()

注意事项

  1. 测试ID与实际ID:确保在发布应用前将测试广告单元ID替换为实际的广告单元ID。
  2. 错误处理:在生产环境中,添加更详细的错误处理逻辑以确保用户体验。
  3. 隐私政策:确保你的应用包含隐私政策,并告知用户广告的使用情况。

这样,你就完成了在Flutter项目中集成和使用adivery_ads插件的基本步骤。希望这些代码示例对你有帮助!

回到顶部