Flutter广告预加载插件setupad_prebid_flutter的使用

Flutter广告预加载插件setupad_prebid_flutter的使用

本文档将指导你如何在Flutter应用中使用Setupad的Prebid插件来显示广告。

Setupad Prebid插件

这是Setupad为Flutter开发的一款插件,它允许用户在其Flutter移动应用中展示由Prebid Mobile SDK支持的横幅广告和插屏广告。

插件集成

前置条件

Flutter版本

确保你的Flutter版本至少为2.10.5

Android

  • minSdkVersion 至少为24
  • compileSdkVersion 至少为33

iOS

  • 最低部署目标至少为12.0

pubspec.yaml文件中添加依赖

在你的pubspec.yaml文件中添加Setupad的Prebid插件,并运行flutter pub get命令:

dependencies:
  setupad_prebid_flutter: 0.0.1

添加应用ID

在添加了插件之后,下一步是在项目中添加Google Ad Manager的应用ID。

Android

AndroidManifest.xml文件中添加以下<meta-data>标签:

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

iOS

Info.plist文件中添加以下键值对:

<key>GADApplicationIdentifier</key>
<string>ca-app-pub-################~##########</string>

可选地,你可以添加[SKAdNetworkItems]项到Info.plist文件中。

SDK初始化

Prebid Mobile SDK只需初始化一次,并且建议尽早进行初始化。首先,在你的Dart文件中包含以下导入语句:

import 'package:setupad_prebid_flutter/prebid_mobile.dart';

然后,调用initializeSDK()方法:

const PrebidMobile().initializeSDK(ACCOUNT_ID, TIMEOUT, PBSDEBUG);
  • ACCOUNT_ID 是你的Prebid账户ID。
  • TIMEOUT 设置竞拍时间(毫秒),竞拍时间过短可能会导致竞拍失败,过长则可能导致广告加载延迟。
  • PBSDEBUG 是一个布尔类型的参数,如果设置为true,则会在竞拍请求中添加调试标志,用于显示测试广告和查看完整的竞拍响应。如果不需要调试功能,则可以将其设置为false

广告集成

目前该插件支持两种广告格式:横幅广告和插屏广告。在创建广告对象时,需要指定广告类型。广告类型可以是小写(“banner”)、大写(“BANNER”)或首字母大写(“Banner”)。

导入广告库

import 'package:setupad_prebid_flutter/prebid_ads.dart';

横幅广告

要显示一个横幅广告,首先需要创建一个PrebidAd类的对象,然后将其添加到你的widget中:

PrebidAd prebidBanner = const PrebidAd(
  adType: 'banner',
  configId: 'CONFIG_ID',
  adUnitId: 'AD_UNIT_ID',
  width: 300,
  height: 250,
  refreshInterval: 30,
);

//...

@override
Widget build(BuildContext context) {
  //...
  return Scaffold(
    appBar: AppBar(
      title: Text(widget.title),
    ),
    body: Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          prebidBanner, // 添加横幅广告对象
          //...
        ],
      ),
    ),
  );
}
  • AD_UNIT_IDCONFIG_ID 是占位符,分别代表广告单元ID和配置ID。
  • 最小刷新间隔为30秒,最大为120秒。

控制横幅广告拍卖

离开展示横幅广告的页面时,应停止拍卖以避免不必要的竞拍。使用PrebidAd类的pauseAuction()resumeAuction()方法控制拍卖:

prebidBanner.pauseAuction(); // 暂停拍卖
prebidBanner.resumeAuction(); // 重新开始拍卖
prebidBanner.destroy(); // 销毁拍卖对象

插屏广告

要显示一个插屏广告,首先需要创建一个PrebidAd类的对象:

PrebidAd prebidInterstitial = const PrebidAd(
  adType: 'interstitial',
  configId: 'CONFIG_ID',
  adUnitId: 'AD_UNIT_ID',
  width: 80,
  height: 60,
  refreshInterval: 0,
);
  • AD_UNIT_IDCONFIG_ID 是占位符。
  • 刷新间隔设为0,因为插屏广告不会刷新。
  • 宽度和高度变量表示插屏广告的最小屏幕宽度和高度百分比。例如,80x60表示插屏广告的最小宽度为屏幕宽度的80%,最小高度为屏幕高度的60%。

如果希望在按钮点击时显示插屏广告,可以使用setState()方法:

bool _showInterstitial = false;

//...

ElevatedButton(
  child: const Text('Press me!'),
  onPressed: () {
    setState(() {
      _showInterstitial = true;
    });
  },
),

if (_showInterstitial)
  prebidInterstitial,

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

1 回复

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


setupad_prebid_flutter 是一个用于在 Flutter 应用中集成 Prebid 广告预加载功能的插件。以下是使用该插件的详细步骤:

1. 添加依赖项

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

dependencies:
  flutter:
    sdk: flutter
  setupad_prebid_flutter: ^版本号  # 替换为最新版本号

然后运行 flutter pub get 命令来获取依赖项。

2. 初始化插件

在你的 Flutter 应用中,通常是在 main.dart 文件中,初始化 setupad_prebid_flutter 插件:

import 'package:setupad_prebid_flutter/setupad_prebid_flutter.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 Prebid
  await PrebidFlutter.initialize(
    accountId: '你的Prebid账户ID',
    configId: '你的Prebid配置ID',
  );
  
  runApp(MyApp());
}

3. 配置广告请求

在你的应用中,你可以使用 PrebidFlutter 来配置和发起广告请求。以下是一个示例:

import 'package:setupad_prebid_flutter/setupad_prebid_flutter.dart';

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

class _MyHomePageState extends State<MyHomePage> {
  Future<void> loadAd() async {
    try {
      // 配置广告请求
      PrebidAdRequest request = PrebidAdRequest(
        adUnitId: '你的广告单元ID',
        adSize: PrebidAdSize.banner(),
      );

      // 发起广告请求
      PrebidAdResponse response = await PrebidFlutter.loadAd(request);

      // 处理广告响应
      if (response.isSuccessful) {
        // 广告加载成功,可以展示广告
        print('广告加载成功: ${response.adContent}');
      } else {
        // 广告加载失败
        print('广告加载失败: ${response.errorMessage}');
      }
    } catch (e) {
      print('广告加载异常: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Prebid Flutter 示例'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: loadAd,
          child: Text('加载广告'),
        ),
      ),
    );
  }
}

4. 展示广告

在广告加载成功后,你可以根据广告的类型(如横幅广告、插页式广告等)在适当的位置展示广告内容。例如,如果你加载的是横幅广告,可以在 response.adContent 中获取广告内容,并将其展示在 ContainerAdWidget 中。

Container(
  width: response.adSize.width,
  height: response.adSize.height,
  child: AdWidget(ad: response.adContent),
)

5. 处理广告生命周期

为了确保广告的正常加载和展示,你还需要处理广告的生命周期事件,如广告展示、点击、关闭等。通常,这些事件可以通过监听 PrebidAdResponse 的相应回调来处理。

6. 调试和测试

在开发和测试阶段,建议启用调试日志以方便排查问题。你可以在初始化时通过 PrebidFlutter.setDebugEnabled(true) 来启用调试日志。

await PrebidFlutter.setDebugEnabled(true);
回到顶部