Flutter广告集成插件rt_ads_plugin的使用

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

Flutter广告集成插件rt_ads_plugin的使用

rt_ads_plugin

rt_ads_plugin 是一个用于在 Flutter 应用中集成广告的插件。它支持多种广告类型,包括激励视频广告、横幅广告和原生广告。

使用步骤

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  rt_ads_plugin: ^版本号

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

2. 初始化插件

在应用启动时,需要初始化插件并获取用户同意信息。

import 'dart:async';

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:rt_ads_plugin/rt_ads_plugin.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await MobileAds.instance.initialize(); // 初始化Google Mobile Ads SDK
  await RTConsentManager().gatherConsent(); // 获取用户同意信息
  runApp(const MyApp());
}

3. 创建主应用类

接下来创建一个 MyApp 类,并在其中初始化广告管理器。

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

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

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    final rtOpenManager = RTOpenManager()..init('ca-app-pub-3940256099942544/9257395921');
    final RTAppLifecycleReactor app = RTAppLifecycleReactor(rtOpenManager: rtOpenManager);

    app.listenToAppStateChanges();
    super.initState();
    initPlatformState();
  }

  Future<void> initPlatformState() async {
    if (!mounted) return;

    setState(() {});
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('插件示例应用'),
        ),
        body: Center(
          child: Builder(builder: (context) => const MyWidget()),
        ),
      ),
    );
  }
}

4. 创建广告展示页面

MyWidget 类中,我们将展示不同类型的广告。

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

  [@override](/user/override)
  State<MyWidget> createState() => _MyWidgetState();
}

class _MyWidgetState extends State<MyWidget> {
  RTNativeController? controller;

  [@override](/user/override)
  void initState() {
    controller = RTNativeController(adUnitId: "ca-app-pub-3940256099942544/2247696110");
    super.initState();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return SingleChildScrollView(
      child: Column(
        children: [
          const SizedBox(height: 10),
          CupertinoButton(
              child: const Text("点击加载激励视频广告"),
              onPressed: () {
                RTAppManagement.instance.loadAndShowRewardedAd(
                  adUnitId: "ca-app-pub-3940256099942544/5224354917",
                  context: context,
                );
              }),
          const SizedBox(height: 10),
          const RTBannerView(
            adUnitId: "ca-app-pub-3940256099942544/6300978111",
            isReloadPerTime: true,
            timeOutInseconds: 60,
            isReloadNavigate: true,
            timeReloadInSeconds: 30,
          ),
          const SizedBox(height: 10),
          const RTNativeView(
            adUnitId: "ca-app-pub-3940256099942544/2247696110",
            type: RTNativeType.huge,
            isActive: true,
            isReload: true,
          ),
        ],
      ),
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter项目中集成和使用rt_ads_plugin插件的示例代码。这个示例将展示如何初始化广告插件、加载广告以及展示广告。请注意,具体的广告单元ID和配置需要根据你的实际广告平台账号来获取。

1. 添加依赖

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

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

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

2. 初始化插件

在你的Flutter应用的入口文件(通常是main.dart)中,初始化rt_ads_plugin。通常,这会在MyApp类的构造函数或initState方法中进行。

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    // 初始化广告插件
    RtAdsPlugin.instance.initAd({
      'appId': '你的广告平台AppId', // 替换为你的广告平台AppId
      'adUnitId': '你的广告单元ID', // 替换为你的广告单元ID
      // 其他可能的初始化参数
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter广告集成示例'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              ElevatedButton(
                onPressed: () {
                  // 加载并展示横幅广告
                  loadAndShowBannerAd();
                },
                child: Text('展示横幅广告'),
              ),
              SizedBox(height: 20),
              ElevatedButton(
                onPressed: () {
                  // 加载并展示插屏广告
                  loadAndShowInterstitialAd();
                },
                child: Text('展示插屏广告'),
              ),
            ],
          ),
        ),
      ),
    );
  }

  void loadAndShowBannerAd() {
    RtAdsPlugin.instance.loadBannerAd({
      'adUnitId': '你的横幅广告单元ID', // 替换为你的横幅广告单元ID
      // 其他可能的加载参数
    }).then((bannerAd) {
      // 展示横幅广告
      RtAdsPlugin.instance.showBannerAd(
        anchorType: AnchorType.BOTTOM, // 横幅广告的位置
      );
    }).catchError((error) {
      print('加载横幅广告失败: $error');
    });
  }

  void loadAndShowInterstitialAd() {
    RtAdsPlugin.instance.loadInterstitialAd({
      'adUnitId': '你的插屏广告单元ID', // 替换为你的插屏广告单元ID
      // 其他可能的加载参数
    }).then((interstitialAd) {
      // 展示插屏广告
      RtAdsPlugin.instance.showInterstitialAd();
    }).catchError((error) {
      print('加载插屏广告失败: $error');
    });
  }
}

3. 配置Android和iOS

根据你的广告平台要求,你可能需要在AndroidManifest.xmlInfo.plist文件中添加一些配置。例如,对于某些广告平台,你可能需要添加网络权限或广告标识符权限。

4. 运行应用

现在,你可以运行你的Flutter应用,点击按钮来加载并展示广告。

请注意,rt_ads_plugin的具体API可能会根据版本有所不同,因此请参考官方文档以获取最新的API信息和示例代码。此外,广告加载和展示的成功与否还取决于你的广告单元配置和广告填充率,因此在实际应用中可能需要处理更多的边缘情况和错误处理。

回到顶部