Flutter全球广告集成插件flutter_unad_ads_global的使用

Flutter全球广告集成插件flutter_unad_ads_global的使用

入门使用

引入依赖
dependencies:
  flutter_unad_ads_global: ^1.0.1
初始化广告
// 导包
import 'package:flutter_unad_ads_global/flutter_unad_ads_global.dart';

// [appId] 应用ID
FlutterUNADAds.initAd(appId);
个性化广告开关
/// 不调用默认为开,'1'打开,'0'关闭
FlutterUNADAds.setUserExtData(personalAdsType: '1');
开屏广告
全屏
/// [posId] 广告位 id
FlutterUNADAds.showSplashAd(posId);
半屏广告 + Logo
/// [posId] 广告位 id
/// [logo] 如果传值则展示底部logo,不传不展示,则全屏展示
/// [timeout] 加载超时时间
FlutterUNADAds.showSplashAd(
  posId,
  logo: 'flutterads_logo',
  timeout: 3.5,
);
新插屏广告
/// [posId] 广告位 id
FlutterUNADAds.showFullScreenVideoAd(AdsConfig.newInterstitialId);
激励视频
/// [posId] 广告位 id
/// [customData] 设置服务端验证的自定义信息
/// [userId] 设置服务端验证的用户信息
FlutterUNADAds.showRewardVideoAd(
    AdsConfig.rewardVideoId,
    customData: 'customData',
    userId: 'userId',
);
Banner
/// [posId] 广告位 id
/// [width] 创建 Banner 广告位时选择的宽度,默认值是 300
/// [height] 创建 Banner 广告位时选择的高度,默认值是 150
/// [interval] 广告轮播间隔,0 或[30~120]之间的数字,单位为 s,默认为 0 不轮播
/// [show] 是否显示广告
/// [autoClose] 是否自动关闭,一般是在用户点击不感兴趣之后的操作
AdBannerWidget(
  posId: AdsConfig.bannerId,
  width: 300,
  height: 150,
  interval: 30,
  show: true,
  autoClose: true,
);

Banner 广告外部需要嵌套一个带有约束布局的 Widget,如:AspectRatioSizedBoxContainer 等,示例如下:

嵌套 SizedBox (推荐)
SizedBox(
  width: 300,
  height: 150,
  child: AdBannerWidget(
    posId: AdsConfig.bannerId,
    width: 300,
    height: 150,
    interval: 30,
    show: true,
  ),
)
信息流
获取信息流广告列表
/// [posId] 广告位 id
/// [width] 宽度
/// [height] 高度
/// [count] 获取广告数量,建议 1~3 个
List<int> feedAdList = await FlutterUNADAds.loadFeedAd(
    AdsConfig.feedId,
    width: 375,
    height: 128,
    count: 3,
  );
清除信息流广告列表
/// [list] 信息流广告 id 列表
bool result = await FlutterUNADAds.clearFeedAd(feedAdList);
页面中展示信息流广告
/// Feed 信息流广告组件
/// [posId]返回的广告 id,这里不是广告位id
/// [width]组件的宽度
/// [height]组件的高度
/// [show]是否显示
AdFeedWidget(
    posId: '${feedAdList[0]}',
    width: 375,
    height: 128,
    show: true,
  )

widthheight 需要根据你新建广告位的模板来设置

设置广告事件监听
FlutterUNADAds.onEventListener((event) {
  // 普通广告事件
  String _adEvent = 'adId:${event.adId} action:${event.action}';
  if (event is AdErrorEvent) {
    // 错误事件
    _adEvent += ' errCode:${event.errCode} errMsg:${event.errMsg}';
  } else if (event is AdRewardEvent) {
    // 激励事件
        _adEvent +=
            'rewardType:${event.rewardType} rewardVerify:${event.rewardVerify} rewardAmount:${event.rewardAmount} rewardName:${event.rewardName} errCode:${event.errCode} errMsg:${event.errMsg} customData:${event.customData} userId:${event.userId}';
  }
  // 测试关闭 Banner(会员场景)
  if (event.action == AdEventAction.onAdClosed && 
      event.adId == AdsConfig.bannerId02) {
    _adEvent += '仅会员可以关闭广告';
  }
  print('onEventListener:$_adEvent');
});
事件列表
事件 说明
onAdLoaded 广告加载成功
onAdPresent 广告填充
onAdExposure 广告曝光
onAdClosed 广告关闭(开屏计时结束或者用户点击关闭)
onAdClicked 广告点击
onAdSkip 广告跳过
onAdComplete 广告播放或计时完毕
onAdError 广告错误
onAdReward 获得广告激励

其他配置

iOS
信任HTTP请求

苹果公司在iOS9中升级了应用网络通信安全策略,默认推荐开发者使用HTTPS协议来进行网络通信,并限制HTTP协议的请求。为了避免出现无法拉取到广告的情况,我们推荐开发者在info.plist文件中增加如下配置来实现广告的网络访问。

修改 info.plist
<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>
请求应用跟踪透明度授权

此步骤必须要做,不然上架审核时候会被拒绝

bool result = await FlutterUNADAds.requestIDFA;
修改 info.plist
<key>NSUserTrackingUsageDescription</key>
<string>为了向您提供更优质、安全的个性化服务及内容,需要您允许使用相关权限</string>
GADApplicationIdentifier
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-5297446075011848~6893150522</string>
Android
修改 AndroidManifest.xml 文件

增加以下节点,具体值需要开通正式广告位

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

 <meta-data
            android:name="applovin.sdk.key"
     android:value="wfF4UGRbFrkIyf_QaZ4__2uqlp8u6bw07FpTU11IKKTomQTTgZJ3xv8y_T2NuZhel6otTSW9lehHq9MT1tddBR" />

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

1 回复

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


当然,以下是如何在Flutter项目中集成和使用flutter_unad_ads_global插件的一个基本示例。这个插件允许你在Flutter应用中集成全球广告网络。不过请注意,具体的实现细节可能会因广告网络的SDK更新而有所变化,因此请参考官方文档和SDK的最新版本。

首先,确保你已经在pubspec.yaml文件中添加了flutter_unad_ads_global依赖:

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

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

接下来,你需要根据广告网络的要求进行一些初始化设置。这里以假设的广告网络为例,展示如何集成和展示广告。

1. 初始化插件

在你的main.dart文件中,首先导入必要的包,并进行初始化:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter UnAd Ads Global Example'),
        ),
        body: MyHomePage(),
      ),
    );
  }
}

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

class _MyHomePageState extends State<MyHomePage> {
  @override
  void initState() {
    super.initState();
    // 初始化广告插件
    FlutterUnAdAdsGlobal.instance.init(
      appId: '你的广告网络APP ID',  // 替换为你的实际APP ID
      // 其他初始化参数,根据广告网络的要求添加
    );
  }

  @override
  Widget build(BuildContext context) {
    return Center(
      child: ElevatedButton(
        onPressed: () {
          // 显示广告,例如横幅广告
          _showBannerAd();
        },
        child: Text('显示广告'),
      ),
    );
  }

  void _showBannerAd() {
    // 创建并显示横幅广告
    FlutterUnAdAdsGlobal.instance.loadBannerAd(
      adUnitId: '你的横幅广告单元ID',  // 替换为你的实际横幅广告单元ID
      adSize: AdSize.banner,  // 或者其他尺寸,如AdSize.largeBanner, AdSize.mediumRectangle等
      listener: (AdEvent event, Map<String, dynamic> info) {
        // 处理广告事件,如加载成功、失败、点击等
        print('Banner Ad Event: $event, Info: $info');
      },
    )..show();
  }
}

2. 处理广告事件和生命周期

在上面的代码中,我们添加了一个广告事件监听器来处理广告的各种事件,如加载成功、失败、点击等。同时,在实际应用中,你可能还需要处理应用的生命周期事件,以确保广告的适当展示和释放。

3. 添加必要的权限和配置(如AndroidManifest.xml和Info.plist)

根据广告网络的要求,你可能需要在AndroidManifest.xmlInfo.plist文件中添加必要的权限和配置。这通常包括网络权限、广告标识符权限等。

注意事项

  • 确保你遵循广告网络的政策和指南,包括用户隐私和数据保护。
  • 定期更新广告网络SDK和插件到最新版本,以获取最新的功能和安全修复。
  • 在发布应用前,彻底测试广告集成,以确保良好的用户体验和合规性。

由于flutter_unad_ads_global是一个假设的插件名称,实际使用时请替换为具体的广告集成插件名称和相应的API调用。此外,具体的API和参数可能会根据广告网络的不同而有所变化,请参考相关广告网络的官方文档进行集成。

回到顶部